Microsoft KB Archive/157247

{|
 * width="100%"|

PRB: IShellFolder::CreateViewObject Causes Access Violation

 * }

Q157247

-

The information in this article applies to:


 * Microsoft Win32 Software Development Kit (SDK)

-

SYMPTOMS
Calling IShellFolder::CreateViewObject for a file system folder causes an Access Violation.

CAUSE
Using the file system implementation of IShellFolder::CreateViewObject results in the shell sending a yet-to-be documented message, the WM_GETISHELLBROWSER message (currently WM_USER+7) to the hWndOwner. The shell assumes the HWND passed in as the owner responds properly to the WM_GETISHELLBROWSER message. If it doesn't, there is an access violation in Shell32.DLL.

RESOLUTION
The shell expects that the hWndOwner will supply the IShellBrowser interface to it in response to the WM_GETISHELLBROWSER message.

For example, if your window is a dialog, the following snippet of code would respond correctly to the message.

  ... #ifndef WM_GETISHELLBROWSER #define WM_GETISHELLBROWSER (WM_USER+7) #endif ...      IShellBrowser *m_psb; ...      BOOL DialogProc(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) {          switch(uMsg) {  ...           case WM_GETISHELLBROWSER: SetWindowLong(hDlg, DWL_MSGRESULT, (LONG)m_psb); break; ...

STATUS
Microsoft has confirmed this to be a problem in the products listed at the beginning of this article.

Additional query words:

Keywords : kbExtension kbNameSpace kbOSWinNT400 kbOSWin2000 kbSDKWin32 kbOSWin95 kbOSWin98 kbGrpDSShell

Issue type : kbprb

Technology : kbWin32SDKSearch kbAudDeveloper kbSDKSearch kbWin32sSearch