環境 vc6.0 winXP
いつもお世話になっております。
CFileDialogにフックを追加しリストビューのスタイルを変えたいのですが
うまくいきません。
ソースは以下のとおりです
//////////////////////////////////////
//open
CFileDialog dlg(...);
dlg.m_ofn.Flags = |OFN_ENABLEHOOK|OFN_EXPLORER|OFN_HIDEREADONLY;
dlg.m_ofn.lpfnHook = FileDlgHookProc;
....
//////////////////////////////////////
//プロシージャ
static UINT CALLBACK FileDlgHookProc
(HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
if( (uMsg == WM_SETREDRAW) && (wParam != FALSE) )
{
_AFX_THREAD_STATE* pThreadState=AfxGetThreadState(); //assert
pThreadState->m_pAlternateWndInit=NULL;
HWND hWndParent = ::GetParent(hDlg);
HWND hWndShellDll = ::FindWindowEx(hWndParent, NULL, SHELLDLL_DefView,
NULL);
HWND hWndSysListView = ::FindWindowEx(hWndShellDll, NULL, SysListView32,
NULL);
LONG lTemp = ::GetWindowLong(hWndSysListView, GWL_STYLE);
lTemp &= ~LVS_LIST;
lTemp |= LVS_ICON;
::SetWindowLong(hWndSysListView, GWL_STYLE, lTemp);
return true;
}
return false;
}
疑問なのはwin2000ではうまく動いていてwinXPでは動かないことです。
spyで調べたところウィンドウハンドルは取れていると思います。
レスが付かないようですので
超初心者のHPの方に移行します。
また何かありましたらよろしくお願いします。