How to copy a dialog resource from an EXE to a DLL
Does anyone know how to do this? I tried using the sample code in MSDN,
condensed below. Using the IDE I looked at "result" and it was true. All the
preceding variables appeared to have valid handles. But when I check the
second instance of "DlgStep1Resource", it is NULL.
Can anyone help me.
Thank you very much.
void CImportController::SetResource(UINT DlgResourceID)
{
HGLOBAL DlgStep1ResourceHandle;
HMODULE ParentModule;
HRSRC DlgStep1Resource;
HANDLE hdlUpdateResource;
LPVOID pTemplate;
ParentModule = ::LoadLibrary("ImportPrototype.exe");
DlgStep1Resource = FindResource(ParentModule,
MAKEINTRESOURCE(DlgResourceID), RT_DIALOG);
DlgStep1ResourceHandle = ::LoadResource(ParentModule, DlgStep1Resource);
pTemplate = (LPVOID) ::LockResource(DlgStep1ResourceHandle);
hdlUpdateResource = ::BeginUpdateResource("ImportWizardFrameworkD.DLL",
FALSE);
DWORD ressize = SizeofResource(ParentModule, DlgStep1Resource);
BOOL result = ::UpdateResource(hdlUpdateResource, // update resource
handle
MAKEINTRESOURCE(RT_DIALOG), // change dialog box
resource
MAKEINTRESOURCE(DlgResourceID), // dialog box name
MAKELANGID(LANG_NEUTRAL, SUBLANG_NEUTRAL), // neutral language
pTemplate, // ptr to resource info
ressize); // size of resource info.
result = ::EndUpdateResource(hdlUpdateResource, FALSE);
// See if the dialog really got copied
ParentModule = ::LoadLibrary("ImportWizardFrameworkD.DLL");
DlgStep1Resource = FindResource(ParentModule,
MAKEINTRESOURCE(DlgResourceID), RT_DIALOG);
}