BOOL function::RegisterFileType(LPCTSTR houzhui,LPCTSTR fmiaoshu,LPCTSTR wmiaoshu,LPCTSTR filepath)
{
HKEY hKey = NULL;
DWORD dwDip=0;
LPTSTR newreg=new TCHAR[512];
TCHAR bufpath[256];
if(filepath==NULL)
GetModuleFileName(NULL,bufpath,256);
else
lstrcpy(bufpath,filepath);
BOOL lReturn=::RegCreateKeyEx(HKEY_CLASSES_ROOT,houzhui,NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,0,&hKey,&dwDip);
if(lReturn != ERROR_SUCCESS)
return false;
::RegSetValueEx(hKey, 0, 0, REG_SZ, (const BYTE *)fmiaoshu, lstrlen(fmiaoshu));
lReturn=::RegCreateKeyEx(HKEY_CLASSES_ROOT,fmiaoshu,NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,0,&hKey,&dwDip);
if(lReturn != ERROR_SUCCESS)
return false;
::RegSetValueEx(hKey, 0, 0, REG_SZ, (const BYTE *)wmiaoshu, lstrlen(wmiaoshu));
lstrcpy(newreg,fmiaoshu);
lstrcat(newreg,_T("//DefaultIcon"));
lReturn=::RegCreateKeyEx(HKEY_CLASSES_ROOT,newreg,NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,0,&hKey,&dwDip);
if(lReturn != ERROR_SUCCESS)
return false;
lstrcpy(newreg,bufpath);
lstrcat(newreg,_T(",0"));
::RegSetValueEx(hKey, 0, 0, REG_SZ, (const BYTE *)newreg, lstrlen(newreg));
lstrcpy(newreg,fmiaoshu);
lstrcat(newreg,_T("//Shell//Open//Command"));
lReturn=::RegCreateKeyEx(HKEY_CLASSES_ROOT,newreg,NULL,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,0,&hKey,&dwDip);
if(lReturn != ERROR_SUCCESS)
return false;
lstrcpy(newreg,_T("/""));
lstrcat(newreg,bufpath);
lstrcat(newreg,_T("/" /"%1/""));
::RegSetValueEx(hKey, 0, 0, REG_SZ,(const BYTE *)newreg, lstrlen(newreg));