mirror of
https://github.com/reactos/reactos.git
synced 2025-01-02 20:43:18 +00:00
[BROWSEUI]
* Simplify a lot of methods my using helpers from shlwapi. * Remove declarations for undocumented functions that are already declared in our headers. * Move definitions of IID_IAugmentedShellFolder and CLSID_MergedFolder to our headers. * Remove definitions of functions that are already implemented in shlwapi. * Add CreateMergedFolder and CreateMenuBand functions in precomp.h in order to simplify creating these objects when using rshell. svn path=/trunk/; revision=65698
This commit is contained in:
parent
4c893c3d59
commit
cfac63ea85
10 changed files with 84 additions and 248 deletions
|
@ -29,13 +29,6 @@ Implements the navigation band of the cabinet window
|
||||||
|
|
||||||
HRESULT CreateAddressEditBox(REFIID riid, void **ppv);
|
HRESULT CreateAddressEditBox(REFIID riid, void **ppv);
|
||||||
|
|
||||||
extern "C"
|
|
||||||
HRESULT WINAPI SHGetImageList(
|
|
||||||
_In_ int iImageList,
|
|
||||||
_In_ REFIID riid,
|
|
||||||
_Out_ void **ppv
|
|
||||||
);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
TODO:
|
TODO:
|
||||||
****Add command handler for show/hide Go button to OnWinEvent
|
****Add command handler for show/hide Go button to OnWinEvent
|
||||||
|
@ -283,13 +276,7 @@ HRESULT STDMETHODCALLTYPE CAddressBand::ShowDW(BOOL fShow)
|
||||||
HRESULT STDMETHODCALLTYPE CAddressBand::QueryStatus(
|
HRESULT STDMETHODCALLTYPE CAddressBand::QueryStatus(
|
||||||
const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[ ], OLECMDTEXT *pCmdText)
|
const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[ ], OLECMDTEXT *pCmdText)
|
||||||
{
|
{
|
||||||
CComPtr<IOleCommandTarget> oleCommandTarget;
|
return IUnknown_QueryStatus(fAddressEditBox, *pguidCmdGroup, cCmds, prgCmds, pCmdText);
|
||||||
HRESULT hResult;
|
|
||||||
|
|
||||||
hResult = fAddressEditBox->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &oleCommandTarget));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return hResult;
|
|
||||||
return oleCommandTarget->QueryStatus(pguidCmdGroup, cCmds, prgCmds, pCmdText);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CAddressBand::Exec(const GUID *pguidCmdGroup,
|
HRESULT STDMETHODCALLTYPE CAddressBand::Exec(const GUID *pguidCmdGroup,
|
||||||
|
@ -329,15 +316,9 @@ HRESULT STDMETHODCALLTYPE CAddressBand::TranslateAcceleratorIO(LPMSG lpMsg)
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CAddressBand::UIActivateIO(BOOL fActivate, LPMSG lpMsg)
|
HRESULT STDMETHODCALLTYPE CAddressBand::UIActivateIO(BOOL fActivate, LPMSG lpMsg)
|
||||||
{
|
{
|
||||||
CComPtr<IInputObjectSite> inputObjectSite;
|
|
||||||
HRESULT hResult;
|
|
||||||
|
|
||||||
if (fActivate)
|
if (fActivate)
|
||||||
{
|
{
|
||||||
hResult = fSite->QueryInterface(IID_PPV_ARG(IInputObjectSite, &inputObjectSite));
|
IUnknown_OnFocusChangeIS(fSite, static_cast<IDeskBand *>(this), fActivate);
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return hResult;
|
|
||||||
hResult = inputObjectSite->OnFocusChangeIS(static_cast<IDeskBand *>(this), fActivate);
|
|
||||||
SetFocus();
|
SetFocus();
|
||||||
}
|
}
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
|
|
@ -37,20 +37,15 @@ CBandProxy::~CBandProxy()
|
||||||
|
|
||||||
HRESULT CBandProxy::FindBrowserWindow(IUnknown **browser)
|
HRESULT CBandProxy::FindBrowserWindow(IUnknown **browser)
|
||||||
{
|
{
|
||||||
CComPtr<IServiceProvider> serviceProvider;
|
IWebBrowser2* webBrowser;
|
||||||
CComPtr<IWebBrowser2> webBrowser;
|
HRESULT hResult;
|
||||||
HRESULT hResult;
|
|
||||||
|
|
||||||
if (browser == NULL)
|
if (browser == NULL)
|
||||||
return E_POINTER;
|
return E_POINTER;
|
||||||
hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &serviceProvider));
|
hResult = IUnknown_QueryService(fSite, SID_IWebBrowserApp, IID_PPV_ARG(IWebBrowser2, &webBrowser));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
hResult = serviceProvider->QueryService(
|
*browser = webBrowser;
|
||||||
SID_IWebBrowserApp, IID_PPV_ARG(IWebBrowser2, &webBrowser));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return hResult;
|
|
||||||
*browser = webBrowser.Detach();
|
|
||||||
return S_OK;
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -43,17 +43,6 @@ inline void FillSolidRect(HDC dc, const RECT *bounds, COLORREF clr)
|
||||||
::ExtTextOut(dc, 0, 0, ETO_OPAQUE, bounds, NULL, 0, NULL);
|
::ExtTextOut(dc, 0, 0, ETO_OPAQUE, bounds, NULL, 0, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
long GetScreenDepth()
|
|
||||||
{
|
|
||||||
HDC tempDC;
|
|
||||||
long depth;
|
|
||||||
|
|
||||||
tempDC = GetDC(NULL);
|
|
||||||
depth = GetDeviceCaps(tempDC, BITSPIXEL) * GetDeviceCaps(tempDC, PLANES);
|
|
||||||
ReleaseDC(NULL, tempDC);
|
|
||||||
return depth;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const int gSmallImageSize = 22;
|
static const int gSmallImageSize = 22;
|
||||||
static const int gMediumImageSize = 26;
|
static const int gMediumImageSize = 26;
|
||||||
static const int gLargeImageSize = 38;
|
static const int gLargeImageSize = 38;
|
||||||
|
@ -100,7 +89,7 @@ void CBrandBand::SelectImage()
|
||||||
BITMAP bitmapInfo;
|
BITMAP bitmapInfo;
|
||||||
int resourceID;
|
int resourceID;
|
||||||
|
|
||||||
screenDepth = GetScreenDepth();
|
screenDepth = SHGetCurColorRes();
|
||||||
GetClientRect(&clientRect);
|
GetClientRect(&clientRect);
|
||||||
clientWidth = clientRect.right - clientRect.left;
|
clientWidth = clientRect.right - clientRect.left;
|
||||||
clientHeight = clientRect.bottom - clientRect.top;
|
clientHeight = clientRect.bottom - clientRect.top;
|
||||||
|
|
|
@ -29,14 +29,7 @@ toolbar, and address band for an explorer window
|
||||||
#define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
|
#define GET_X_LPARAM(lp) ((int)(short)LOWORD(lp))
|
||||||
#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
|
#define GET_Y_LPARAM(lp) ((int)(short)HIWORD(lp))
|
||||||
|
|
||||||
#define USE_CUSTOM_MENUBAND 1
|
|
||||||
HMODULE g_hRShell = NULL;
|
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
// TODO: declare these GUIDs and interfaces in the right place (whatever that may be)
|
|
||||||
|
|
||||||
IID IID_IAugmentedShellFolder = { 0x91EA3F8C, 0xC99B, 0x11D0, { 0x98, 0x15, 0x00, 0xC0, 0x4F, 0xD9, 0x19, 0x72 } };
|
|
||||||
CLSID CLSID_MergedFolder = { 0x26FDC864, 0xBE88, 0x46E7, { 0x92, 0x35, 0x03, 0x2D, 0x8E, 0xA5, 0x16, 0x2E } };
|
|
||||||
|
|
||||||
interface IAugmentedShellFolder : public IShellFolder
|
interface IAugmentedShellFolder : public IShellFolder
|
||||||
{
|
{
|
||||||
|
@ -90,35 +83,6 @@ extern HRESULT CreateBrandBand(REFIID riid, void **ppv);
|
||||||
extern HRESULT CreateBandProxy(REFIID riid, void **ppv);
|
extern HRESULT CreateBandProxy(REFIID riid, void **ppv);
|
||||||
extern HRESULT CreateAddressBand(REFIID riid, void **ppv);
|
extern HRESULT CreateAddressBand(REFIID riid, void **ppv);
|
||||||
|
|
||||||
typedef HRESULT(WINAPI * PMENUBAND_CONSTRUCTOR)(REFIID riid, void **ppv);
|
|
||||||
typedef HRESULT(WINAPI * PMERGEDFOLDER_CONSTRUCTOR)(REFIID riid, void **ppv);
|
|
||||||
|
|
||||||
HMODULE hRShell = NULL;
|
|
||||||
PMERGEDFOLDER_CONSTRUCTOR pCMergedFolder_Constructor = NULL;
|
|
||||||
PMENUBAND_CONSTRUCTOR pCMenuBand_Constructor = NULL;
|
|
||||||
|
|
||||||
HRESULT IUnknown_HasFocusIO(IUnknown * punk)
|
|
||||||
{
|
|
||||||
CComPtr<IInputObject> pio;
|
|
||||||
HRESULT hr;
|
|
||||||
hr = punk->QueryInterface(IID_PPV_ARG(IInputObject, &pio));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
|
||||||
return hr;
|
|
||||||
return pio->HasFocusIO();
|
|
||||||
}
|
|
||||||
|
|
||||||
HRESULT IUnknown_TranslateAcceleratorIO(IUnknown * punk, MSG * pmsg)
|
|
||||||
{
|
|
||||||
CComPtr<IInputObject> pio;
|
|
||||||
HRESULT hr;
|
|
||||||
if (!punk)
|
|
||||||
return E_FAIL;
|
|
||||||
hr = punk->QueryInterface(IID_PPV_ARG(IInputObject, &pio));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
|
||||||
return hr;
|
|
||||||
return pio->TranslateAcceleratorIO(pmsg);
|
|
||||||
}
|
|
||||||
|
|
||||||
HRESULT IUnknown_RelayWinEvent(IUnknown * punk, HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
|
HRESULT IUnknown_RelayWinEvent(IUnknown * punk, HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *theResult)
|
||||||
{
|
{
|
||||||
CComPtr<IWinEventHandler> menuWinEventHandler;
|
CComPtr<IWinEventHandler> menuWinEventHandler;
|
||||||
|
@ -478,28 +442,7 @@ static HRESULT GetFavoritesFolder(IShellFolder ** ppsfFavorites, LPITEMIDLIST *
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
#if 1
|
hr = CreateMergedFolder(IID_PPV_ARG(IAugmentedShellFolder, &pasf));
|
||||||
if (!hRShell)
|
|
||||||
{
|
|
||||||
hRShell = GetModuleHandle(L"rshell.dll");
|
|
||||||
if (!hRShell)
|
|
||||||
hRShell = LoadLibrary(L"rshell.dll");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!pCMergedFolder_Constructor)
|
|
||||||
pCMergedFolder_Constructor = (PMERGEDFOLDER_CONSTRUCTOR) GetProcAddress(hRShell, "CMergedFolder_Constructor");
|
|
||||||
|
|
||||||
if (pCMergedFolder_Constructor)
|
|
||||||
{
|
|
||||||
hr = pCMergedFolder_Constructor(IID_PPV_ARG(IAugmentedShellFolder, &pasf));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
hr = E_FAIL;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
hr = CoCreateInstance(CLSID_MergedFolder, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARG(IAugmentedShellFolder, &pasf));
|
|
||||||
#endif
|
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
{
|
{
|
||||||
*ppsfFavorites = psfUserFavorites.Detach();
|
*ppsfFavorites = psfUserFavorites.Detach();
|
||||||
|
@ -560,30 +503,7 @@ HRESULT STDMETHODCALLTYPE CMenuCallback::GetObject(LPSMDATA psmd, REFIID riid, v
|
||||||
|
|
||||||
if (fFavoritesMenu.p == NULL)
|
if (fFavoritesMenu.p == NULL)
|
||||||
{
|
{
|
||||||
#if USE_CUSTOM_MENUBAND
|
hResult = CreateMenuBand(IID_PPV_ARG(IShellMenu, &newMenu));
|
||||||
if (!hRShell)
|
|
||||||
{
|
|
||||||
hRShell = GetModuleHandle(L"rshell.dll");
|
|
||||||
if (!hRShell)
|
|
||||||
hRShell = LoadLibrary(L"rshell.dll");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!pCMenuBand_Constructor)
|
|
||||||
pCMenuBand_Constructor = (PMENUBAND_CONSTRUCTOR) GetProcAddress(hRShell, "CMenuBand_Constructor");
|
|
||||||
|
|
||||||
if (pCMenuBand_Constructor)
|
|
||||||
{
|
|
||||||
hResult = pCMenuBand_Constructor(IID_PPV_ARG(IShellMenu, &newMenu));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
hResult = CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,
|
|
||||||
IID_PPV_ARG(IShellMenu, &newMenu));
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
hResult = CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,
|
|
||||||
IID_PPV_ARG(IShellMenu, &newMenu));
|
|
||||||
#endif
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
hResult = newMenu->Initialize(this, FCIDM_MENU_FAVORITES, -1, SMINIT_VERTICAL | SMINIT_CACHED);
|
hResult = newMenu->Initialize(this, FCIDM_MENU_FAVORITES, -1, SMINIT_VERTICAL | SMINIT_CACHED);
|
||||||
|
@ -751,29 +671,9 @@ HRESULT CInternetToolbar::CreateMenuBar(IShellMenu **pMenuBar)
|
||||||
|
|
||||||
*pMenuBar = NULL;
|
*pMenuBar = NULL;
|
||||||
|
|
||||||
hResult = E_FAIL;
|
hResult = CreateMenuBand(IID_PPV_ARG(IShellMenu, &menubar));
|
||||||
#if USE_CUSTOM_MENUBAND
|
|
||||||
if (!g_hRShell) g_hRShell = GetModuleHandleW(L"rshell.dll");
|
|
||||||
|
|
||||||
if (!g_hRShell) g_hRShell = LoadLibraryW(L"rshell.dll");
|
|
||||||
|
|
||||||
if (g_hRShell)
|
|
||||||
{
|
|
||||||
PMENUBAND_CONSTRUCTOR func = (PMENUBAND_CONSTRUCTOR) GetProcAddress(g_hRShell, "CMenuBand_Constructor");
|
|
||||||
if (func)
|
|
||||||
{
|
|
||||||
hResult = func(IID_PPV_ARG(IShellMenu, &menubar));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
{
|
return hResult;
|
||||||
hResult = CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,
|
|
||||||
IID_PPV_ARG(IShellMenu, &menubar));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return hResult;
|
|
||||||
}
|
|
||||||
|
|
||||||
hResult = fMenuCallback->QueryInterface(IID_PPV_ARG(IShellMenuCallback, &callback));
|
hResult = fMenuCallback->QueryInterface(IID_PPV_ARG(IShellMenuCallback, &callback));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
|
@ -1403,8 +1303,6 @@ HRESULT STDMETHODCALLTYPE CInternetToolbar::OnChange(LONG lEvent, LPCITEMIDLIST
|
||||||
HRESULT STDMETHODCALLTYPE CInternetToolbar::SetSite(IUnknown *pUnkSite)
|
HRESULT STDMETHODCALLTYPE CInternetToolbar::SetSite(IUnknown *pUnkSite)
|
||||||
{
|
{
|
||||||
CComPtr<IBrowserService> browserService;
|
CComPtr<IBrowserService> browserService;
|
||||||
CComPtr<IServiceProvider> serviceProvider;
|
|
||||||
CComPtr<IOleWindow> oleWindow;
|
|
||||||
HWND ownerWindow;
|
HWND ownerWindow;
|
||||||
HWND dockContainer;
|
HWND dockContainer;
|
||||||
HRESULT hResult;
|
HRESULT hResult;
|
||||||
|
@ -1419,10 +1317,7 @@ HRESULT STDMETHODCALLTYPE CInternetToolbar::SetSite(IUnknown *pUnkSite)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// get window handle of owner
|
// get window handle of owner
|
||||||
hResult = pUnkSite->QueryInterface(IID_PPV_ARG(IOleWindow, &oleWindow));
|
hResult = IUnknown_GetWindow(pUnkSite, &ownerWindow);
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return hResult;
|
|
||||||
hResult = oleWindow->GetWindow(&ownerWindow);
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
if (ownerWindow == NULL)
|
if (ownerWindow == NULL)
|
||||||
|
@ -1447,9 +1342,7 @@ HRESULT STDMETHODCALLTYPE CInternetToolbar::SetSite(IUnknown *pUnkSite)
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
||||||
// take advice to watch events
|
// take advice to watch events
|
||||||
hResult = pUnkSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &serviceProvider));
|
hResult = IUnknown_QueryService(pUnkSite, SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &browserService));
|
||||||
hResult = serviceProvider->QueryService(
|
|
||||||
SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &browserService));
|
|
||||||
hResult = AtlAdvise(browserService, static_cast<IDispatch *>(this), DIID_DWebBrowserEvents, &fAdviseCookie);
|
hResult = AtlAdvise(browserService, static_cast<IDispatch *>(this), DIID_DWebBrowserEvents, &fAdviseCookie);
|
||||||
}
|
}
|
||||||
return S_OK;
|
return S_OK;
|
||||||
|
@ -1467,7 +1360,6 @@ HRESULT STDMETHODCALLTYPE CInternetToolbar::GetSite(REFIID riid, void **ppvSite)
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CInternetToolbar::QueryService(REFGUID guidService, REFIID riid, void **ppvObject)
|
HRESULT STDMETHODCALLTYPE CInternetToolbar::QueryService(REFGUID guidService, REFIID riid, void **ppvObject)
|
||||||
{
|
{
|
||||||
CComPtr<IServiceProvider> serviceProvider;
|
|
||||||
HRESULT hResult;
|
HRESULT hResult;
|
||||||
|
|
||||||
if (IsEqualIID(guidService, IID_IBandSite))
|
if (IsEqualIID(guidService, IID_IBandSite))
|
||||||
|
@ -1577,15 +1469,10 @@ HRESULT STDMETHODCALLTYPE CInternetToolbar::GetBandSiteInfo(BANDSITEINFO *pbsinf
|
||||||
|
|
||||||
LRESULT CInternetToolbar::OnTravelBack(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
|
LRESULT CInternetToolbar::OnTravelBack(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
|
||||||
{
|
{
|
||||||
CComPtr<IServiceProvider> serviceProvider;
|
|
||||||
CComPtr<IWebBrowser> webBrowser;
|
CComPtr<IWebBrowser> webBrowser;
|
||||||
HRESULT hResult;
|
HRESULT hResult;
|
||||||
|
|
||||||
hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &serviceProvider));
|
hResult = IUnknown_QueryService(fSite, SID_SShellBrowser, IID_PPV_ARG(IWebBrowser, &webBrowser));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return 0;
|
|
||||||
hResult = serviceProvider->QueryService(SID_SShellBrowser,
|
|
||||||
IID_PPV_ARG(IWebBrowser, &webBrowser));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return 0;
|
return 0;
|
||||||
hResult = webBrowser->GoBack();
|
hResult = webBrowser->GoBack();
|
||||||
|
@ -1594,15 +1481,10 @@ LRESULT CInternetToolbar::OnTravelBack(WORD wNotifyCode, WORD wID, HWND hWndCtl,
|
||||||
|
|
||||||
LRESULT CInternetToolbar::OnTravelForward(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
|
LRESULT CInternetToolbar::OnTravelForward(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
|
||||||
{
|
{
|
||||||
CComPtr<IServiceProvider> serviceProvider;
|
|
||||||
CComPtr<IWebBrowser> webBrowser;
|
CComPtr<IWebBrowser> webBrowser;
|
||||||
HRESULT hResult;
|
HRESULT hResult;
|
||||||
|
|
||||||
hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &serviceProvider));
|
hResult = IUnknown_QueryService(fSite, SID_SShellBrowser, IID_PPV_ARG(IWebBrowser, &webBrowser));
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return 0;
|
|
||||||
hResult = serviceProvider->QueryService(
|
|
||||||
SID_SShellBrowser, IID_PPV_ARG(IWebBrowser, &webBrowser));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return 0;
|
return 0;
|
||||||
hResult = webBrowser->GoForward();
|
hResult = webBrowser->GoForward();
|
||||||
|
@ -1611,13 +1493,7 @@ LRESULT CInternetToolbar::OnTravelForward(WORD wNotifyCode, WORD wID, HWND hWndC
|
||||||
|
|
||||||
LRESULT CInternetToolbar::OnUpLevel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
|
LRESULT CInternetToolbar::OnUpLevel(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
|
||||||
{
|
{
|
||||||
CComPtr<IOleCommandTarget> oleCommandTarget;
|
IUnknown_Exec(fSite, CGID_ShellBrowser, IDM_GOTO_UPONELEVEL, 0, NULL, NULL);
|
||||||
HRESULT hResult;
|
|
||||||
|
|
||||||
hResult = fSite->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &oleCommandTarget));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return hResult;
|
|
||||||
hResult = oleCommandTarget->Exec(&CGID_ShellBrowser, IDM_GOTO_UPONELEVEL, 0, NULL, NULL);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1654,13 +1530,7 @@ LRESULT CInternetToolbar::OnSearch(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOO
|
||||||
|
|
||||||
LRESULT CInternetToolbar::OnFolders(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
|
LRESULT CInternetToolbar::OnFolders(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL &bHandled)
|
||||||
{
|
{
|
||||||
CComPtr<IOleCommandTarget> oleCommandTarget;
|
IUnknown_Exec(fSite, CGID_Explorer, 0x23, 0, NULL, NULL);
|
||||||
HRESULT hResult;
|
|
||||||
|
|
||||||
hResult = fSite->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &oleCommandTarget));
|
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
|
||||||
return hResult;
|
|
||||||
hResult = oleCommandTarget->Exec(&CGID_Explorer, 0x23, 0, NULL, NULL);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1677,7 +1547,6 @@ LRESULT CInternetToolbar::OnForwardToCommandTarget(WORD wNotifyCode, WORD wID, H
|
||||||
|
|
||||||
LRESULT CInternetToolbar::OnMenuDropDown(UINT idControl, NMHDR *pNMHDR, BOOL &bHandled)
|
LRESULT CInternetToolbar::OnMenuDropDown(UINT idControl, NMHDR *pNMHDR, BOOL &bHandled)
|
||||||
{
|
{
|
||||||
CComPtr<IServiceProvider> serviceProvider;
|
|
||||||
CComPtr<IBrowserService> browserService;
|
CComPtr<IBrowserService> browserService;
|
||||||
CComPtr<IOleCommandTarget> commandTarget;
|
CComPtr<IOleCommandTarget> commandTarget;
|
||||||
CComPtr<ITravelLog> travelLog;
|
CComPtr<ITravelLog> travelLog;
|
||||||
|
@ -1703,14 +1572,11 @@ LRESULT CInternetToolbar::OnMenuDropDown(UINT idControl, NMHDR *pNMHDR, BOOL &bH
|
||||||
{
|
{
|
||||||
case IDM_GOTO_BACK:
|
case IDM_GOTO_BACK:
|
||||||
newMenu = CreatePopupMenu();
|
newMenu = CreatePopupMenu();
|
||||||
hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &serviceProvider));
|
hResult = IUnknown_QueryService(fSite, SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &browserService));
|
||||||
hResult = serviceProvider->QueryService(
|
|
||||||
SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &browserService));
|
|
||||||
hResult = browserService->GetTravelLog(&travelLog);
|
hResult = browserService->GetTravelLog(&travelLog);
|
||||||
hResult = travelLog->InsertMenuEntries(browserService, newMenu, 0, 1, 9, TLMENUF_BACK);
|
hResult = travelLog->InsertMenuEntries(browserService, newMenu, 0, 1, 9, TLMENUF_BACK);
|
||||||
hResult = browserService->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &commandTarget));
|
|
||||||
commandInfo.cmdID = 0x1d;
|
commandInfo.cmdID = 0x1d;
|
||||||
hResult = commandTarget->QueryStatus(&CGID_Explorer, 1, &commandInfo, NULL);
|
hResult = IUnknown_QueryStatus(browserService, CGID_Explorer, 1, &commandInfo, NULL);
|
||||||
if ((commandInfo.cmdf & (OLECMDF_ENABLED | OLECMDF_LATCHED)) == OLECMDF_ENABLED &&
|
if ((commandInfo.cmdf & (OLECMDF_ENABLED | OLECMDF_LATCHED)) == OLECMDF_ENABLED &&
|
||||||
travelLog->CountEntries(browserService) > 1)
|
travelLog->CountEntries(browserService) > 1)
|
||||||
{
|
{
|
||||||
|
@ -1733,13 +1599,11 @@ LRESULT CInternetToolbar::OnMenuDropDown(UINT idControl, NMHDR *pNMHDR, BOOL &bH
|
||||||
break;
|
break;
|
||||||
case IDM_GOTO_FORWARD:
|
case IDM_GOTO_FORWARD:
|
||||||
newMenu = CreatePopupMenu();
|
newMenu = CreatePopupMenu();
|
||||||
hResult = fSite->QueryInterface(IID_PPV_ARG(IServiceProvider, &serviceProvider));
|
hResult = IUnknown_QueryService(fSite, SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &browserService));
|
||||||
hResult = serviceProvider->QueryService(SID_SShellBrowser, IID_PPV_ARG(IBrowserService, &browserService));
|
|
||||||
hResult = browserService->GetTravelLog(&travelLog);
|
hResult = browserService->GetTravelLog(&travelLog);
|
||||||
hResult = travelLog->InsertMenuEntries(browserService, newMenu, 0, 1, 9, TLMENUF_FORE);
|
hResult = travelLog->InsertMenuEntries(browserService, newMenu, 0, 1, 9, TLMENUF_FORE);
|
||||||
hResult = browserService->QueryInterface(IID_PPV_ARG(IOleCommandTarget, &commandTarget));
|
|
||||||
commandInfo.cmdID = 0x1d;
|
commandInfo.cmdID = 0x1d;
|
||||||
hResult = commandTarget->QueryStatus(&CGID_Explorer, 1, &commandInfo, NULL);
|
hResult = IUnknown_QueryStatus(browserService, CGID_Explorer, 1, &commandInfo, NULL);
|
||||||
if ((commandInfo.cmdf & (OLECMDF_ENABLED | OLECMDF_LATCHED)) == OLECMDF_ENABLED &&
|
if ((commandInfo.cmdf & (OLECMDF_ENABLED | OLECMDF_LATCHED)) == OLECMDF_ENABLED &&
|
||||||
travelLog->CountEntries(browserService) > 1)
|
travelLog->CountEntries(browserService) > 1)
|
||||||
{
|
{
|
||||||
|
|
|
@ -46,4 +46,47 @@
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(browseui);
|
WINE_DEFAULT_DEBUG_CHANNEL(browseui);
|
||||||
|
|
||||||
|
|
||||||
|
#define USE_CUSTOM_MENUBAND 1
|
||||||
|
|
||||||
|
typedef HRESULT(WINAPI * PMENUBAND_CONSTRUCTOR)(REFIID riid, void **ppv);
|
||||||
|
typedef HRESULT(WINAPI * PMERGEDFOLDER_CONSTRUCTOR)(REFIID riid, void **ppv);
|
||||||
|
|
||||||
|
static inline
|
||||||
|
HRESULT CreateMergedFolder(REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
#if 1
|
||||||
|
HMODULE hRShell = GetModuleHandle(L"rshell.dll");
|
||||||
|
if (!hRShell)
|
||||||
|
hRShell = LoadLibrary(L"rshell.dll");
|
||||||
|
|
||||||
|
PMERGEDFOLDER_CONSTRUCTOR pCMergedFolder_Constructor = (PMERGEDFOLDER_CONSTRUCTOR)
|
||||||
|
GetProcAddress(hRShell, "CMergedFolder_Constructor");
|
||||||
|
|
||||||
|
if (pCMergedFolder_Constructor)
|
||||||
|
{
|
||||||
|
return pCMergedFolder_Constructor(riid, ppv);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return CoCreateInstance(CLSID_MergedFolder, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline
|
||||||
|
HRESULT CreateMenuBand(REFIID iid, LPVOID *ppv)
|
||||||
|
{
|
||||||
|
#if USE_CUSTOM_MENUBAND
|
||||||
|
HMODULE hRShell = GetModuleHandleW(L"rshell.dll");
|
||||||
|
|
||||||
|
if (!hRShell)
|
||||||
|
hRShell = LoadLibraryW(L"rshell.dll");
|
||||||
|
|
||||||
|
PMENUBAND_CONSTRUCTOR func = (PMENUBAND_CONSTRUCTOR) GetProcAddress(hRShell, "CMenuBand_Constructor");
|
||||||
|
if (func)
|
||||||
|
{
|
||||||
|
return func(iid , ppv);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER, iid, ppv);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* _BROWSEUI_PCH_ */
|
#endif /* _BROWSEUI_PCH_ */
|
||||||
|
|
|
@ -26,11 +26,6 @@
|
||||||
|
|
||||||
#define USE_CUSTOM_EXPLORERBAND 1
|
#define USE_CUSTOM_EXPLORERBAND 1
|
||||||
|
|
||||||
extern "C"
|
|
||||||
BOOL WINAPI Shell_GetImageLists(
|
|
||||||
_Out_ HIMAGELIST *phiml,
|
|
||||||
_Out_ HIMAGELIST *phimlSmall);
|
|
||||||
|
|
||||||
extern HRESULT IUnknown_ShowDW(IUnknown * punk, BOOL fShow);
|
extern HRESULT IUnknown_ShowDW(IUnknown * punk, BOOL fShow);
|
||||||
|
|
||||||
#include "newatlinterfaces.h"
|
#include "newatlinterfaces.h"
|
||||||
|
@ -149,34 +144,6 @@ extern HRESULT CreateBaseBarSite(REFIID riid, void **ppv);
|
||||||
// temporary
|
// temporary
|
||||||
extern HRESULT CreateInternetToolbar(REFIID riid, void **ppv);
|
extern HRESULT CreateInternetToolbar(REFIID riid, void **ppv);
|
||||||
|
|
||||||
|
|
||||||
HMENU SHGetMenuFromID(HMENU topMenu, int theID)
|
|
||||||
{
|
|
||||||
MENUITEMINFO menuItemInfo;
|
|
||||||
|
|
||||||
menuItemInfo.cbSize = sizeof(menuItemInfo);
|
|
||||||
menuItemInfo.fMask = MIIM_SUBMENU;
|
|
||||||
if (!GetMenuItemInfo(topMenu, theID, FALSE, &menuItemInfo))
|
|
||||||
return NULL;
|
|
||||||
return menuItemInfo.hSubMenu;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SHCheckMenuItem(HMENU theMenu, int theID, BOOL checked)
|
|
||||||
{
|
|
||||||
MENUITEMINFO menuItemInfo;
|
|
||||||
|
|
||||||
menuItemInfo.cbSize = sizeof(menuItemInfo);
|
|
||||||
menuItemInfo.fMask = MIIM_STATE;
|
|
||||||
if (GetMenuItemInfo(theMenu, theID, FALSE, &menuItemInfo))
|
|
||||||
{
|
|
||||||
if (checked)
|
|
||||||
menuItemInfo.fState |= MF_CHECKED;
|
|
||||||
else
|
|
||||||
menuItemInfo.fState &= ~MF_CHECKED;
|
|
||||||
SetMenuItemInfo(theMenu, theID, FALSE, &menuItemInfo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void DeleteMenuItems(HMENU theMenu, unsigned int firstIDToDelete, unsigned int lastIDToDelete)
|
void DeleteMenuItems(HMENU theMenu, unsigned int firstIDToDelete, unsigned int lastIDToDelete)
|
||||||
{
|
{
|
||||||
MENUITEMINFO menuItemInfo;
|
MENUITEMINFO menuItemInfo;
|
||||||
|
@ -985,9 +952,7 @@ HRESULT CShellBrowser::BrowseToPath(IShellFolder *newShellFolder,
|
||||||
::SendMessage(fCurrentShellViewWindow, WM_SETREDRAW, 0, 0);
|
::SendMessage(fCurrentShellViewWindow, WM_SETREDRAW, 0, 0);
|
||||||
|
|
||||||
// set site
|
// set site
|
||||||
hResult = newShellView->QueryInterface(IID_PPV_ARG(IObjectWithSite, &objectWithSite));
|
hResult = IUnknown_SetSite(newShellView, static_cast<IDropTarget *>(this));
|
||||||
if (SUCCEEDED(hResult) && objectWithSite.p != NULL)
|
|
||||||
hResult = objectWithSite->SetSite(static_cast<IDropTarget *>(this));
|
|
||||||
|
|
||||||
// update folder and view
|
// update folder and view
|
||||||
saveCurrentShellFolder = fCurrentShellFolder;
|
saveCurrentShellFolder = fCurrentShellFolder;
|
||||||
|
@ -2582,8 +2547,6 @@ HRESULT STDMETHODCALLTYPE CShellBrowser::_SetFocus(LPTOOLBARITEM ptbi, HWND hwnd
|
||||||
return E_NOTIMPL;
|
return E_NOTIMPL;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern HRESULT IUnknown_HasFocusIO(IUnknown * punk);
|
|
||||||
extern HRESULT IUnknown_TranslateAcceleratorIO(IUnknown * punk, MSG * pmsg);
|
|
||||||
HRESULT STDMETHODCALLTYPE CShellBrowser::v_MayTranslateAccelerator(MSG *pmsg)
|
HRESULT STDMETHODCALLTYPE CShellBrowser::v_MayTranslateAccelerator(MSG *pmsg)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++)
|
||||||
|
|
|
@ -261,7 +261,6 @@ TBBUTTON tbButtonsAdd[numShownButtons + numHiddenButtons] =
|
||||||
|
|
||||||
HRESULT STDMETHODCALLTYPE CToolsBand::SetSite(IUnknown* pUnkSite){
|
HRESULT STDMETHODCALLTYPE CToolsBand::SetSite(IUnknown* pUnkSite){
|
||||||
HWND parentWindow;
|
HWND parentWindow;
|
||||||
IOleWindow *oleWindow;
|
|
||||||
HWND toolbar;
|
HWND toolbar;
|
||||||
HRESULT hResult;
|
HRESULT hResult;
|
||||||
|
|
||||||
|
@ -273,13 +272,8 @@ HRESULT STDMETHODCALLTYPE CToolsBand::SetSite(IUnknown* pUnkSite){
|
||||||
if (FAILED_UNEXPECTEDLY(hResult))
|
if (FAILED_UNEXPECTEDLY(hResult))
|
||||||
return hResult;
|
return hResult;
|
||||||
parentWindow = NULL;
|
parentWindow = NULL;
|
||||||
hResult = pUnkSite->QueryInterface(IID_PPV_ARG(IOleWindow, &oleWindow));
|
hResult = IUnknown_GetWindow(pUnkSite, &parentWindow);
|
||||||
if (SUCCEEDED(hResult))
|
if (FAILED(hResult) || !::IsWindow(parentWindow))
|
||||||
{
|
|
||||||
oleWindow->GetWindow(&parentWindow);
|
|
||||||
oleWindow->Release();
|
|
||||||
}
|
|
||||||
if (!::IsWindow(parentWindow))
|
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
||||||
toolbar = CreateWindowEx(
|
toolbar = CreateWindowEx(
|
||||||
|
|
|
@ -107,6 +107,10 @@ DEFINE_GUID(CLSID_ShellNetDefExt, 0x86422020, 0x42A0, 0x1069, 0xA2, 0xE
|
||||||
|
|
||||||
DEFINE_GUID(CLSID_ExeDropHandler, 0x86C86720, 0x42A0, 0x1069, 0xA2, 0xE8, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D);
|
DEFINE_GUID(CLSID_ExeDropHandler, 0x86C86720, 0x42A0, 0x1069, 0xA2, 0xE8, 0x08, 0x00, 0x2B, 0x30, 0x30, 0x9D);
|
||||||
|
|
||||||
|
DEFINE_GUID(IID_IAugmentedShellFolder, 0x91EA3F8C, 0xC99B, 0x11D0, 0x98, 0x15, 0x00, 0xC0, 0x4F, 0xD9, 0x19, 0x72);
|
||||||
|
DEFINE_GUID(CLSID_MergedFolder, 0x26FDC864, 0xBE88, 0x46E7, 0x92, 0x35, 0x03, 0x2D, 0x8E, 0xA5, 0x16, 0x2E);
|
||||||
|
|
||||||
|
|
||||||
#define CGID_IExplorerToolbar IID_IExplorerToolbar
|
#define CGID_IExplorerToolbar IID_IExplorerToolbar
|
||||||
#define SID_IExplorerToolbar IID_IExplorerToolbar
|
#define SID_IExplorerToolbar IID_IExplorerToolbar
|
||||||
#define SID_ITargetFrame2 IID_ITargetFrame2
|
#define SID_ITargetFrame2 IID_ITargetFrame2
|
||||||
|
|
|
@ -33,13 +33,6 @@ LONG WINAPI SHSetWindowBits(HWND hwnd, INT offset, UINT wMask, UINT wFlags);
|
||||||
HWND WINAPI SHSetParentHwnd(HWND hWnd, HWND hWndParent);
|
HWND WINAPI SHSetParentHwnd(HWND hWnd, HWND hWndParent);
|
||||||
HRESULT WINAPI ConnectToConnectionPoint(IUnknown *lpUnkSink, REFIID riid, BOOL bAdviseOnly, IUnknown *lpUnknown, LPDWORD lpCookie, IConnectionPoint **lppCP);
|
HRESULT WINAPI ConnectToConnectionPoint(IUnknown *lpUnkSink, REFIID riid, BOOL bAdviseOnly, IUnknown *lpUnknown, LPDWORD lpCookie, IConnectionPoint **lppCP);
|
||||||
BOOL WINAPI SHIsSameObject(IUnknown *lpInt1, IUnknown *lpInt2);
|
BOOL WINAPI SHIsSameObject(IUnknown *lpInt1, IUnknown *lpInt2);
|
||||||
HRESULT WINAPI IUnknown_GetWindow(IUnknown *lpUnknown, HWND *lphWnd);
|
|
||||||
HRESULT WINAPI IUnknown_SetOwner(IUnknown *pUnk, ULONG arg);
|
|
||||||
HRESULT WINAPI IUnknown_SetSite(IUnknown *obj, IUnknown *site);
|
|
||||||
HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *lpClassId);
|
|
||||||
HRESULT WINAPI IUnknown_QueryService(IUnknown* lpUnknown, REFGUID sid, REFIID riid, LPVOID *lppOut);
|
|
||||||
HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *lpUnknown, REFIID service, const GUID *group, DWORD cmdId, DWORD cmdOpt, VARIANT *pIn, VARIANT *pOut);
|
|
||||||
HRESULT WINAPI IUnknown_UIActivateIO(IUnknown *unknown, BOOL activate, LPMSG msg);
|
|
||||||
BOOL WINAPI SHLoadMenuPopup(HINSTANCE hInst, LPCWSTR szName);
|
BOOL WINAPI SHLoadMenuPopup(HINSTANCE hInst, LPCWSTR szName);
|
||||||
void WINAPI SHPropagateMessage(HWND hWnd, UINT uiMsgId, WPARAM wParam, LPARAM lParam, BOOL bSend);
|
void WINAPI SHPropagateMessage(HWND hWnd, UINT uiMsgId, WPARAM wParam, LPARAM lParam, BOOL bSend);
|
||||||
DWORD WINAPI SHRemoveAllSubMenus(HMENU hMenu);
|
DWORD WINAPI SHRemoveAllSubMenus(HMENU hMenu);
|
||||||
|
@ -47,9 +40,6 @@ UINT WINAPI SHEnableMenuItem(HMENU hMenu, UINT wItemID, BOOL bEnable);
|
||||||
DWORD WINAPI SHCheckMenuItem(HMENU hMenu, UINT uID, BOOL bCheck);
|
DWORD WINAPI SHCheckMenuItem(HMENU hMenu, UINT uID, BOOL bCheck);
|
||||||
DWORD WINAPI SHRegisterClassA(WNDCLASSA *wndclass);
|
DWORD WINAPI SHRegisterClassA(WNDCLASSA *wndclass);
|
||||||
BOOL WINAPI SHSimulateDrop(IDropTarget *pDrop, IDataObject *pDataObj, DWORD grfKeyState, PPOINTL lpPt, DWORD* pdwEffect);
|
BOOL WINAPI SHSimulateDrop(IDropTarget *pDrop, IDataObject *pDataObj, DWORD grfKeyState, PPOINTL lpPt, DWORD* pdwEffect);
|
||||||
HRESULT WINAPI IUnknown_TranslateAcceleratorOCS(IUnknown *lpUnknown, LPMSG lpMsg, DWORD dwModifiers);
|
|
||||||
HRESULT WINAPI IUnknown_OnFocusOCS(IUnknown *lpUnknown, BOOL fGotFocus);
|
|
||||||
HRESULT WINAPI IUnknown_HandleIRestrict(LPUNKNOWN lpUnknown, PVOID lpArg1, PVOID lpArg2, PVOID lpArg3, PVOID lpArg4);
|
|
||||||
HMENU WINAPI SHGetMenuFromID(HMENU hMenu, UINT uID);
|
HMENU WINAPI SHGetMenuFromID(HMENU hMenu, UINT uID);
|
||||||
DWORD WINAPI SHGetCurColorRes(void);
|
DWORD WINAPI SHGetCurColorRes(void);
|
||||||
DWORD WINAPI SHWaitForSendMessageThread(HANDLE hand, DWORD dwTimeout);
|
DWORD WINAPI SHWaitForSendMessageThread(HANDLE hand, DWORD dwTimeout);
|
||||||
|
@ -84,6 +74,17 @@ HWND WINAPI SHCreateWorkerWindowW(LONG wndProc, HWND hWndParent, DWORD dwExStyle
|
||||||
#define SHCreateWorkerWindow SHCreateWorkerWindowA
|
#define SHCreateWorkerWindow SHCreateWorkerWindowA
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
HRESULT WINAPI IUnknown_SetOwner(IUnknown *pUnk, ULONG arg);
|
||||||
|
HRESULT WINAPI IUnknown_GetClassID(IUnknown *lpUnknown, CLSID *lpClassId);
|
||||||
|
HRESULT WINAPI IUnknown_QueryServiceExec(IUnknown *lpUnknown, REFIID service, const GUID *group, DWORD cmdId, DWORD cmdOpt, VARIANT *pIn, VARIANT *pOut);
|
||||||
|
HRESULT WINAPI IUnknown_UIActivateIO(IUnknown *unknown, BOOL activate, LPMSG msg);
|
||||||
|
HRESULT WINAPI IUnknown_TranslateAcceleratorOCS(IUnknown *lpUnknown, LPMSG lpMsg, DWORD dwModifiers);
|
||||||
|
HRESULT WINAPI IUnknown_OnFocusOCS(IUnknown *lpUnknown, BOOL fGotFocus);
|
||||||
|
HRESULT WINAPI IUnknown_HandleIRestrict(LPUNKNOWN lpUnknown, PVOID lpArg1, PVOID lpArg2, PVOID lpArg3, PVOID lpArg4);
|
||||||
|
HRESULT WINAPI IUnknown_HasFocusIO(IUnknown * punk);
|
||||||
|
HRESULT WINAPI IUnknown_TranslateAcceleratorIO(IUnknown * punk, MSG * pmsg);
|
||||||
|
HRESULT WINAPI IUnknown_OnFocusChangeIS(LPUNKNOWN lpUnknown, LPUNKNOWN pFocusObject, BOOL bFocus);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} /* extern "C" */
|
} /* extern "C" */
|
||||||
#endif /* defined(__cplusplus) */
|
#endif /* defined(__cplusplus) */
|
||||||
|
|
|
@ -540,6 +540,8 @@ BOOL WINAPI SHInitRestricted(LPCVOID unused, LPCVOID inpRegKey);
|
||||||
#define SMC_EXEC 4
|
#define SMC_EXEC 4
|
||||||
INT WINAPI Shell_GetCachedImageIndex(LPCWSTR szPath, INT nIndex, UINT bSimulateDoc);
|
INT WINAPI Shell_GetCachedImageIndex(LPCWSTR szPath, INT nIndex, UINT bSimulateDoc);
|
||||||
|
|
||||||
|
HRESULT WINAPI SHGetImageList(int iImageList, REFIID riid, void **ppv);
|
||||||
|
|
||||||
static inline ULONG
|
static inline ULONG
|
||||||
Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)
|
Win32DbgPrint(const char *filename, int line, const char *lpFormat, ...)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue