I think this should work, but I'm getting an Access Violation at the first WriteFile. Anyone know why?
Thanks,
Code://file names #define CPL "\\wgpocpl.cpl" #define DLL "\\wgpoadmn.dll" char * pchSystemDir = NULL; //the windows system directory HRSRC hCpl = NULL; //handle to control panel resource HRSRC hDll = NULL; //handle to DLL resource HGLOBAL hCpl2 = NULL; HGLOBAL hDll2 = NULL; char * pchCpl = NULL; //location of resource in memory char * pchDll = NULL; //location of resource in memory char * pchCplName = NULL; //full file name of cpl char * pchDllName = NULL; //full file name of dll HANDLE hCplFile = INVALID_HANDLE_VALUE; HANDLE hDllFile = INVALID_HANDLE_VALUE; //load the resources into memory hCpl = FindResource(NULL, IDR_CPL, "CUSTOM"); hDll = FindResource(NULL, IDR_DLL, "CUSTOM"); hCpl2 = LoadResource(NULL, hCpl); hDll2 = LoadResource(NULL, hDll); pchCpl = (char*)LockResource(hCpl2); pchDll = (char*)LockResource(hDll2); //create the files hCplFile = CreateFile(pchCplName, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, NULL); hDllFile = CreateFile(pchDllName, GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_ARCHIVE, NULL); HeapFree(GetProcessHeap(), 0, pchCplName); HeapFree(GetProcessHeap(), 0, pchDllName); //write to the files WriteFile(hCplFile, pchCpl, SizeofResource(hInstance, hCpl), NULL, NULL); WriteFile(hDllFile, pchDll, SizeofResource(hInstance, hDll), NULL, NULL); //close the files CloseHandle(hCplFile); CloseHandle(hDllFile);




Reply With Quote