Oui, j'avais réussi à retrouver cette instance en la sauvegardant lors de l'appel de DllEntryPoint mais si je fait un getmodulefilename sur thismod j'obtient le nom de l'exe et non de ma dll. Mais ma ressource que j'essaye de charger depuis ma dll se trouve dans elle-même pas dans l'exe host. donc il ne trouve pas la bitmap avec load image.
Voilà tout ce que j'ai fait :
dans le fichier .rc
CP_BGBITMAP BITMAP DISCARDABLE "controlpanel.bmp"
dans le fichier .cpp
BOOL WINAPI DllEntryPoint (HINSTANCE hInstance,ULONG ulReason,LPVOID pv){
switch (ulReason) {
case DLL_PROCESS_ATTACH:
g_hInst=hInstance;
...
}
LRESULT CALLBACK ControlPanelProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
...
case WM_PAINT:
HDC hdc;
HDC hdcMemory;
PAINTSTRUCT ps;
hdc=BeginPaint(hwnd,&ps); // obtient un handle de contexte de périphérique
BITMAP bm;
hbitmap=(HBITMAP) LoadImage(g_hInst,MAKEINTRESOURCE(CP_BGBITMAP),IMAGE_BITMAP,0,0,LR_CREATEDIBSECTION);
if(hbitmap!=NULL){
hdcMemory=CreateCompatibleDC(NULL);
SelectObject(hdcMemory,hbitmap);
GetObject(hbitmap,sizeof(bm),&bm);
BitBlt(hdc,0,0,bm.bmWidth,bm.bmHeight,hdcMemory,0,0,SRCCOPY);
DeleteDC(hdcMemory);
}
...
}
Et là je n'obtient pas de hbitmap, ma ressource n'est pas trouvée.
