Ich glaube nicht, dass die DLL das Handle nur wegen des Icons benoetigt.
Wozu soll das gut sein? Ich denke eher, dass ueber das handle der CWnd Pointer geholt wird,
um z.B. für einen Dialog den Parent zu bestimmen.
Das mit dem CFrameWnd halte ich für keine gescheite Lösung, aber gut…
Allgemein lautet create folgendermassen:
BOOL Create(
LPCTSTR lpszClassName,
LPCTSTR lpszWindowName,
DWORD dwStyle = WS\_OVERLAPPEDWINDOW,
const RECT& rect = rectDefault,
CWnd\* pParentWnd = NULL,
LPCTSTR lpszMenuName = NULL,
DWORD dwExStyle = 0,
CCreateContext\* pContext = NULL
);
Fuer lpszClassName wuerde ich NULL waehlen.
Fuer lpszWindowName wuerde ich z.B. _T(„Dummy“).
dwStyle = WS_VISIBLE wuerde das Fenster sichtbar machen.
Ich halte eher die DLL für schlecht, denn die sollte auch mit einem NULL-Pointer umgehen koennen.