O
void CNewsDlg::RegisterFileType()
{
CString exec;
GetModuleFileName(0,exec.GetBuffer(260),260);
exec.ReleaseBuffer();
SHSetValue(HKEY_CLASSES_ROOT,_T(".news"),NULL,REG_SZ,_T("news_file"),9*sizeof(TCHAR));
SHSetValue(HKEY_CLASSES_ROOT,_T("news_file"),NULL,REG_SZ,_T("News Installation File"),22*sizeof(TCHAR));
SHSetValue(HKEY_CLASSES_ROOT,_T("news_file\\DefaultIcon"),NULL,REG_SZ,exec+_T(",0"),exec.GetLength()*sizeof(TCHAR)+2*sizeof(TCHAR));
exec=_T("\"")+exec+_T("\" -newsfile %1");
SHSetValue(HKEY_CLASSES_ROOT,_T("news_file\\Shell"),NULL,REG_SZ,_T("Install"),7*sizeof(TCHAR));
SHSetValue(HKEY_CLASSES_ROOT,_T("news_file\\Shell\\Install\\Command"),NULL,REG_SZ,exec,exec.GetLength()*sizeof(TCHAR));
exec=_T("\"notepad.exe\" %1");
SHSetValue(HKEY_CLASSES_ROOT,_T("news_file\\Shell\\Edit\\Command"),NULL,REG_SZ,exec,exec.GetLength()*sizeof(TCHAR));
SHChangeNotify(SHCNE_ASSOCCHANGED,0,0,0);
}