WINE_DEFAULT_DEBUG_CHANNEL(shdocvw);
-static ATOM doc_view_atom = 0;
static ATOM shell_embedding_atom = 0;
-static LRESULT WINAPI doc_view_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+static LRESULT resize_window(WebBrowser *This, LONG width, LONG height)
{
- return DefWindowProcA(hwnd, msg, wParam, lParam);
+ if(This->doc_view_hwnd)
+ SetWindowPos(This->doc_view_hwnd, NULL, 0, 0, width, height,
+ SWP_NOZORDER | SWP_NOACTIVATE);
+
+ return 0;
}
static LRESULT WINAPI shell_embedding_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
- return DefWindowProcA(hwnd, msg, wParam, lParam);
-}
+ WebBrowser *This;
-static void create_doc_view_hwnd(WebBrowser *This)
-{
- static const WCHAR wszShell_DocObject_View[] =
- {'S','h','e','l','l',' ','D','o','c','O','b','j','e','c','t',' ','V','i','e','w',0};
+ static const WCHAR wszTHIS[] = {'T','H','I','S',0};
- if(!doc_view_atom) {
- static WNDCLASSEXW wndclass = {
- sizeof(wndclass),
- CS_PARENTDC,
- doc_view_proc,
- 0, 0 /* native uses 4*/, NULL, NULL, NULL,
- (HBRUSH)COLOR_WINDOWFRAME, NULL,
- wszShell_DocObject_View,
- NULL
- };
-
- wndclass.hInstance = shdocvw_hinstance;
+ if(msg == WM_CREATE) {
+ This = *(WebBrowser**)lParam;
+ SetPropW(hwnd, wszTHIS, This);
+ }else {
+ This = GetPropW(hwnd, wszTHIS);
+ }
- doc_view_atom = RegisterClassExW(&wndclass);
+ switch(msg) {
+ case WM_SIZE:
+ return resize_window(This, LOWORD(lParam), HIWORD(lParam));
}
- This->doc_view_hwnd = CreateWindowExW(0, wszShell_DocObject_View, NULL,
- WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_TABSTOP | WS_MAXIMIZEBOX,
- 0, 0, 0, 0, This->shell_embedding_hwnd,
- NULL, shdocvw_hinstance, This);
+ return DefWindowProcA(hwnd, msg, wParam, lParam);
}
static void create_shell_embedding_hwnd(WebBrowser *This)
IOleInPlaceSite_Release(inplace);
}
- This->shell_embedding_hwnd = CreateWindowExW(0, wszShellEmbedding, NULL,
+ This->shell_embedding_hwnd = CreateWindowExW(0, wszShellEmbedding, wszShellEmbedding,
WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_TABSTOP | WS_MAXIMIZEBOX,
0, 0, 0, 0, parent,
NULL, shdocvw_hinstance, This);
-
- create_doc_view_hwnd(This);
}
/**********************************************************************
This->client = pClientSite;
if(!pClientSite)
return S_OK;
-
+
IOleClientSite_AddRef(pClientSite);
create_shell_embedding_hwnd(This);
WebBrowser *This = OLEOBJ_THIS(iface);
HRESULT hres;
+ static const WCHAR wszitem[] = {'i','t','e','m',0};
+
TRACE("(%p)->(%ld %p %p %ld %p %p)\n", This, iVerb, lpmsg, pActiveSite, lindex, hwndParent,
lprcPosRect);
switch (iVerb)
{
+ case OLEIVERB_SHOW:
case OLEIVERB_INPLACEACTIVATE: {
IOleInPlaceSite *inplace;
&This->frameinfo);
- IOleInPlaceSite_Release(inplace);
+ if(iVerb == OLEIVERB_INPLACEACTIVATE)
+ IOleInPlaceSite_Release(inplace);
+
+ SetWindowPos(This->shell_embedding_hwnd, NULL,
+ This->pos_rect.left, This->pos_rect.top,
+ This->pos_rect.right-This->pos_rect.left,
+ This->pos_rect.bottom-This->pos_rect.top,
+ SWP_NOZORDER | SWP_SHOWWINDOW);
if(This->client) {
IOleClientSite_ShowObject(This->client);
if(This->frame)
IOleInPlaceFrame_GetWindow(This->frame, &This->frame_hwnd);
+ if(iVerb == OLEIVERB_INPLACEACTIVATE)
+ return S_OK;
+
+ TRACE("OLEIVERB_SHOW\n");
+
+ IOleInPlaceSite_OnUIActivate(inplace);
+ IOleInPlaceSite_Release(inplace);
+
+ IOleInPlaceFrame_SetActiveObject(This->frame, ACTIVEOBJ(This), wszitem);
+
+ /* TODO:
+ * IOleInPlaceFrmae_SetMenu
+ */
+
return S_OK;
}
default:
LPCRECT lprcPosRect, LPCRECT lprcClipRect)
{
WebBrowser *This = INPLACEOBJ_THIS(iface);
- FIXME("(%p)->(%p %p)\n", This, lprcPosRect, lprcClipRect);
- return E_NOTIMPL;
+
+ TRACE("(%p)->(%p %p)\n", This, lprcPosRect, lprcClipRect);
+
+ if(This->shell_embedding_hwnd) {
+ SetWindowPos(This->shell_embedding_hwnd, NULL,
+ lprcPosRect->left, lprcPosRect->top,
+ lprcPosRect->right-lprcPosRect->left,
+ lprcPosRect->bottom-lprcPosRect->top,
+ SWP_NOZORDER | SWP_NOACTIVATE);
+ }
+
+ return S_OK;
}
static HRESULT WINAPI OleInPlaceObject_ReactivateAndUndo(IOleInPlaceObject *iface)
OleControl_FreezeEvents
};
+#define ACTIVEOBJ_THIS(iface) DEFINE_THIS(WebBrowser, OleInPlaceActiveObject, iface)
+
+static HRESULT WINAPI InPlaceActiveObject_QueryInterface(IOleInPlaceActiveObject *iface,
+ REFIID riid, void **ppv)
+{
+ WebBrowser *This = ACTIVEOBJ_THIS(iface);
+ return IWebBrowser2_QueryInterface(WEBBROWSER2(This), riid, ppv);
+}
+
+static ULONG WINAPI InPlaceActiveObject_AddRef(IOleInPlaceActiveObject *iface)
+{
+ WebBrowser *This = ACTIVEOBJ_THIS(iface);
+ return IWebBrowser2_AddRef(WEBBROWSER2(This));
+}
+
+static ULONG WINAPI InPlaceActiveObject_Release(IOleInPlaceActiveObject *iface)
+{
+ WebBrowser *This = ACTIVEOBJ_THIS(iface);
+ return IWebBrowser2_Release(WEBBROWSER2(This));
+}
+
+static HRESULT WINAPI InPlaceActiveObject_GetWindow(IOleInPlaceActiveObject *iface,
+ HWND *phwnd)
+{
+ WebBrowser *This = ACTIVEOBJ_THIS(iface);
+ return IOleInPlaceObject_GetWindow(INPLACEOBJ(This), phwnd);
+}
+
+static HRESULT WINAPI InPlaceActiveObject_ContextSensitiveHelp(IOleInPlaceActiveObject *iface,
+ BOOL fEnterMode)
+{
+ WebBrowser *This = ACTIVEOBJ_THIS(iface);
+ return IOleInPlaceObject_ContextSensitiveHelp(INPLACEOBJ(This), fEnterMode);
+}
+
+static HRESULT WINAPI InPlaceActiveObject_TranslateAccelerator(IOleInPlaceActiveObject *iface,
+ LPMSG lpmsg)
+{
+ WebBrowser *This = ACTIVEOBJ_THIS(iface);
+ FIXME("(%p)->(%p)\n", This, lpmsg);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InPlaceActiveObject_OnFrameWindowActivate(IOleInPlaceActiveObject *iface,
+ BOOL fActivate)
+{
+ WebBrowser *This = ACTIVEOBJ_THIS(iface);
+ FIXME("(%p)->(%x)\n", This, fActivate);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InPlaceActiveObject_OnDocWindowActivate(IOleInPlaceActiveObject *iface,
+ BOOL fActivate)
+{
+ WebBrowser *This = ACTIVEOBJ_THIS(iface);
+ FIXME("(%p)->(%x)\n", This, fActivate);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InPlaceActiveObject_ResizeBorder(IOleInPlaceActiveObject *iface,
+ LPCRECT lprcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow)
+{
+ WebBrowser *This = ACTIVEOBJ_THIS(iface);
+ FIXME("(%p)->(%p %p %x)\n", This, lprcBorder, pUIWindow, fFrameWindow);
+ return E_NOTIMPL;
+}
+
+static HRESULT WINAPI InPlaceActiveObject_EnableModeless(IOleInPlaceActiveObject *iface,
+ BOOL fEnable)
+{
+ WebBrowser *This = ACTIVEOBJ_THIS(iface);
+ FIXME("(%p)->(%x)\n", This, fEnable);
+ return E_NOTIMPL;
+}
+
+#undef ACTIVEOBJ_THIS
+
+static const IOleInPlaceActiveObjectVtbl OleInPlaceActiveObjectVtbl = {
+ InPlaceActiveObject_QueryInterface,
+ InPlaceActiveObject_AddRef,
+ InPlaceActiveObject_Release,
+ InPlaceActiveObject_GetWindow,
+ InPlaceActiveObject_ContextSensitiveHelp,
+ InPlaceActiveObject_TranslateAccelerator,
+ InPlaceActiveObject_OnFrameWindowActivate,
+ InPlaceActiveObject_OnDocWindowActivate,
+ InPlaceActiveObject_ResizeBorder,
+ InPlaceActiveObject_EnableModeless
+};
+
void WebBrowser_OleObject_Init(WebBrowser *This)
{
- This->lpOleObjectVtbl = &OleObjectVtbl;
- This->lpOleInPlaceObjectVtbl = &OleInPlaceObjectVtbl;
- This->lpOleControlVtbl = &OleControlVtbl;
+ This->lpOleObjectVtbl = &OleObjectVtbl;
+ This->lpOleInPlaceObjectVtbl = &OleInPlaceObjectVtbl;
+ This->lpOleControlVtbl = &OleControlVtbl;
+ This->lpOleInPlaceActiveObjectVtbl = &OleInPlaceActiveObjectVtbl;
This->client = NULL;
This->container = NULL;
This->frame_hwnd = NULL;
This->frame = NULL;
This->uiwindow = NULL;
+ This->shell_embedding_hwnd = NULL;
memset(&This->pos_rect, 0, sizeof(RECT));
memset(&This->clip_rect, 0, sizeof(RECT));
--- /dev/null
+/*** Autogenerated by WIDL 0.9.3 from hlink.idl - Do not edit ***/
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef __WIDL_HLINK_H
+#define __WIDL_HLINK_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <urlmon.h>
+#ifndef __IHlinkSite_FWD_DEFINED__
+#define __IHlinkSite_FWD_DEFINED__
+typedef interface IHlinkSite IHlinkSite;
+#endif
+
+#ifndef __IHlinkBrowseContext_FWD_DEFINED__
+#define __IHlinkBrowseContext_FWD_DEFINED__
+typedef interface IHlinkBrowseContext IHlinkBrowseContext;
+#endif
+
+#ifndef __IHlink_FWD_DEFINED__
+#define __IHlink_FWD_DEFINED__
+typedef interface IHlink IHlink;
+#endif
+
+typedef IHlink *LPHLINK;
+typedef enum {
+ HLNF_INTERNALJUMP = 0x1,
+ HLNF_OPENINNEWWINDOW = 0x2,
+ HLNF_NAVIGATINGBACK = 0x4,
+ HLNF_NAVIGATINGFORWARD = 0x8,
+ HLNF_NAVIGATINGTOSTACKITEM = 0x10,
+ HLNF_CREATENOHISTORY = 0x20
+} HLNF;
+typedef enum {
+ HLINKGETREF_DEFAULT = 0,
+ HLINKGETREF_ABSOLUTE = 1,
+ HLINKGETREF_RELATIVE = 2
+} HLINKGETREF;
+typedef enum {
+ HLFNAMEF_DEFAULT = 0x0,
+ HLFNAMEF_TRYCACHE = 0x1,
+ HLFNAMEF_TRYPRETTYTARGET = 0x2,
+ HLFNAMEF_TRYFULLTARGET = 0x4,
+ HLFNAMEF_TRYWIN95SHORTCUT = 0x8
+} HLFNAMEF;
+typedef enum {
+ HLINKMISC_RELATIVE = 0x1
+} HLINKMISC;
+typedef enum {
+ HLINKSETF_TARGET = 0x1,
+ HLINKSETF_LOCATION = 0x2
+} HLINKSETF;
+/*****************************************************************************
+ * IHlink interface
+ */
+#ifndef __IHlink_INTERFACE_DEFINED__
+#define __IHlink_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IHlink, 0x79eac9c3, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+IHlink : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetHlinkSite(
+ IHlinkSite* pihlSite,
+ DWORD dwSiteData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetHlinkSite(
+ IHlinkSite** ppihlSite,
+ DWORD* pdwSiteData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetMonikerReference(
+ DWORD grfHLSETF,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMonikerReference(
+ DWORD dwWhichRef,
+ IMoniker** ppimkTarget,
+ LPWSTR* ppwzLocation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetStringReference(
+ DWORD grfHLSETF,
+ LPCWSTR pwzTarget,
+ LPCWSTR pwzLocation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStringReference(
+ DWORD dwWhichRef,
+ LPWSTR* ppwzTarget,
+ LPWSTR* ppwzLocation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetFriendlyName(
+ LPCWSTR pwzFriendlyName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFriendlyName(
+ DWORD grfHLFNAMEF,
+ LPWSTR* ppwzFriendlyName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetTargetFrameName(
+ LPCWSTR pwzTargetFrameName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetTargetFrameName(
+ LPWSTR* ppwzTargetFrameName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMiscStatus(
+ DWORD* pdwStatus) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Navigate(
+ DWORD grfHLNF,
+ LPBC pibc,
+ IBindStatusCallback* pibsc,
+ IHlinkBrowseContext* pihlbc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAdditionalParams(
+ LPCWSTR pwzAdditionalParams) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAdditionalParams(
+ LPWSTR* ppwzAdditionalParams) = 0;
+
+};
+#else
+typedef struct IHlinkVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IHlink* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IHlink* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IHlink* This);
+
+ /*** IHlink methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetHlinkSite)(
+ IHlink* This,
+ IHlinkSite* pihlSite,
+ DWORD dwSiteData);
+
+ HRESULT (STDMETHODCALLTYPE *GetHlinkSite)(
+ IHlink* This,
+ IHlinkSite** ppihlSite,
+ DWORD* pdwSiteData);
+
+ HRESULT (STDMETHODCALLTYPE *SetMonikerReference)(
+ IHlink* This,
+ DWORD grfHLSETF,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation);
+
+ HRESULT (STDMETHODCALLTYPE *GetMonikerReference)(
+ IHlink* This,
+ DWORD dwWhichRef,
+ IMoniker** ppimkTarget,
+ LPWSTR* ppwzLocation);
+
+ HRESULT (STDMETHODCALLTYPE *SetStringReference)(
+ IHlink* This,
+ DWORD grfHLSETF,
+ LPCWSTR pwzTarget,
+ LPCWSTR pwzLocation);
+
+ HRESULT (STDMETHODCALLTYPE *GetStringReference)(
+ IHlink* This,
+ DWORD dwWhichRef,
+ LPWSTR* ppwzTarget,
+ LPWSTR* ppwzLocation);
+
+ HRESULT (STDMETHODCALLTYPE *SetFriendlyName)(
+ IHlink* This,
+ LPCWSTR pwzFriendlyName);
+
+ HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
+ IHlink* This,
+ DWORD grfHLFNAMEF,
+ LPWSTR* ppwzFriendlyName);
+
+ HRESULT (STDMETHODCALLTYPE *SetTargetFrameName)(
+ IHlink* This,
+ LPCWSTR pwzTargetFrameName);
+
+ HRESULT (STDMETHODCALLTYPE *GetTargetFrameName)(
+ IHlink* This,
+ LPWSTR* ppwzTargetFrameName);
+
+ HRESULT (STDMETHODCALLTYPE *GetMiscStatus)(
+ IHlink* This,
+ DWORD* pdwStatus);
+
+ HRESULT (STDMETHODCALLTYPE *Navigate)(
+ IHlink* This,
+ DWORD grfHLNF,
+ LPBC pibc,
+ IBindStatusCallback* pibsc,
+ IHlinkBrowseContext* pihlbc);
+
+ HRESULT (STDMETHODCALLTYPE *SetAdditionalParams)(
+ IHlink* This,
+ LPCWSTR pwzAdditionalParams);
+
+ HRESULT (STDMETHODCALLTYPE *GetAdditionalParams)(
+ IHlink* This,
+ LPWSTR* ppwzAdditionalParams);
+
+ END_INTERFACE
+} IHlinkVtbl;
+interface IHlink {
+ const IHlinkVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IHlink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IHlink_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IHlink_Release(p) (p)->lpVtbl->Release(p)
+/*** IHlink methods ***/
+#define IHlink_SetHlinkSite(p,a,b) (p)->lpVtbl->SetHlinkSite(p,a,b)
+#define IHlink_GetHlinkSite(p,a,b) (p)->lpVtbl->GetHlinkSite(p,a,b)
+#define IHlink_SetMonikerReference(p,a,b,c) (p)->lpVtbl->SetMonikerReference(p,a,b,c)
+#define IHlink_GetMonikerReference(p,a,b,c) (p)->lpVtbl->GetMonikerReference(p,a,b,c)
+#define IHlink_SetStringReference(p,a,b,c) (p)->lpVtbl->SetStringReference(p,a,b,c)
+#define IHlink_GetStringReference(p,a,b,c) (p)->lpVtbl->GetStringReference(p,a,b,c)
+#define IHlink_SetFriendlyName(p,a) (p)->lpVtbl->SetFriendlyName(p,a)
+#define IHlink_GetFriendlyName(p,a,b) (p)->lpVtbl->GetFriendlyName(p,a,b)
+#define IHlink_SetTargetFrameName(p,a) (p)->lpVtbl->SetTargetFrameName(p,a)
+#define IHlink_GetTargetFrameName(p,a) (p)->lpVtbl->GetTargetFrameName(p,a)
+#define IHlink_GetMiscStatus(p,a) (p)->lpVtbl->GetMiscStatus(p,a)
+#define IHlink_Navigate(p,a,b,c,d) (p)->lpVtbl->Navigate(p,a,b,c,d)
+#define IHlink_SetAdditionalParams(p,a) (p)->lpVtbl->SetAdditionalParams(p,a)
+#define IHlink_GetAdditionalParams(p,a) (p)->lpVtbl->GetAdditionalParams(p,a)
+#endif
+
+#endif
+
+HRESULT CALLBACK IHlink_SetHlinkSite_Proxy(
+ IHlink* This,
+ IHlinkSite* pihlSite,
+ DWORD dwSiteData);
+void __RPC_STUB IHlink_SetHlinkSite_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_GetHlinkSite_Proxy(
+ IHlink* This,
+ IHlinkSite** ppihlSite,
+ DWORD* pdwSiteData);
+void __RPC_STUB IHlink_GetHlinkSite_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_SetMonikerReference_Proxy(
+ IHlink* This,
+ DWORD grfHLSETF,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation);
+void __RPC_STUB IHlink_SetMonikerReference_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_GetMonikerReference_Proxy(
+ IHlink* This,
+ DWORD dwWhichRef,
+ IMoniker** ppimkTarget,
+ LPWSTR* ppwzLocation);
+void __RPC_STUB IHlink_GetMonikerReference_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_SetStringReference_Proxy(
+ IHlink* This,
+ DWORD grfHLSETF,
+ LPCWSTR pwzTarget,
+ LPCWSTR pwzLocation);
+void __RPC_STUB IHlink_SetStringReference_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_GetStringReference_Proxy(
+ IHlink* This,
+ DWORD dwWhichRef,
+ LPWSTR* ppwzTarget,
+ LPWSTR* ppwzLocation);
+void __RPC_STUB IHlink_GetStringReference_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_SetFriendlyName_Proxy(
+ IHlink* This,
+ LPCWSTR pwzFriendlyName);
+void __RPC_STUB IHlink_SetFriendlyName_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_GetFriendlyName_Proxy(
+ IHlink* This,
+ DWORD grfHLFNAMEF,
+ LPWSTR* ppwzFriendlyName);
+void __RPC_STUB IHlink_GetFriendlyName_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_SetTargetFrameName_Proxy(
+ IHlink* This,
+ LPCWSTR pwzTargetFrameName);
+void __RPC_STUB IHlink_SetTargetFrameName_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_GetTargetFrameName_Proxy(
+ IHlink* This,
+ LPWSTR* ppwzTargetFrameName);
+void __RPC_STUB IHlink_GetTargetFrameName_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_GetMiscStatus_Proxy(
+ IHlink* This,
+ DWORD* pdwStatus);
+void __RPC_STUB IHlink_GetMiscStatus_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_Navigate_Proxy(
+ IHlink* This,
+ DWORD grfHLNF,
+ LPBC pibc,
+ IBindStatusCallback* pibsc,
+ IHlinkBrowseContext* pihlbc);
+void __RPC_STUB IHlink_Navigate_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_SetAdditionalParams_Proxy(
+ IHlink* This,
+ LPCWSTR pwzAdditionalParams);
+void __RPC_STUB IHlink_SetAdditionalParams_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlink_GetAdditionalParams_Proxy(
+ IHlink* This,
+ LPWSTR* ppwzAdditionalParams);
+void __RPC_STUB IHlink_GetAdditionalParams_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IHlink_INTERFACE_DEFINED__ */
+
+typedef IHlinkSite *LPHLINKSITE;
+typedef enum {
+ HLINKWHICHMK_CONTAINER = 1,
+ HLINKWHICHMK_BASE = 2
+} HLINKWHICHMK;
+/*****************************************************************************
+ * IHlinkSite interface
+ */
+#ifndef __IHlinkSite_INTERFACE_DEFINED__
+#define __IHlinkSite_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IHlinkSite, 0x79eac9c2, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+IHlinkSite : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE QueryService(
+ DWORD dwSiteData,
+ REFGUID guidService,
+ REFIID riid,
+ IUnknown** ppiunk) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMoniker(
+ DWORD dwSiteData,
+ DWORD dwAssign,
+ DWORD dwWhich,
+ IMoniker** ppimk) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReadyToNavigate(
+ DWORD dwSiteData,
+ DWORD dwReserved) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnNavigationComplete(
+ DWORD dwSiteData,
+ DWORD dwreserved,
+ HRESULT hrError,
+ LPCWSTR pwzError) = 0;
+
+};
+#else
+typedef struct IHlinkSiteVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IHlinkSite* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IHlinkSite* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IHlinkSite* This);
+
+ /*** IHlinkSite methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryService)(
+ IHlinkSite* This,
+ DWORD dwSiteData,
+ REFGUID guidService,
+ REFIID riid,
+ IUnknown** ppiunk);
+
+ HRESULT (STDMETHODCALLTYPE *GetMoniker)(
+ IHlinkSite* This,
+ DWORD dwSiteData,
+ DWORD dwAssign,
+ DWORD dwWhich,
+ IMoniker** ppimk);
+
+ HRESULT (STDMETHODCALLTYPE *ReadyToNavigate)(
+ IHlinkSite* This,
+ DWORD dwSiteData,
+ DWORD dwReserved);
+
+ HRESULT (STDMETHODCALLTYPE *OnNavigationComplete)(
+ IHlinkSite* This,
+ DWORD dwSiteData,
+ DWORD dwreserved,
+ HRESULT hrError,
+ LPCWSTR pwzError);
+
+ END_INTERFACE
+} IHlinkSiteVtbl;
+interface IHlinkSite {
+ const IHlinkSiteVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IHlinkSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IHlinkSite_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IHlinkSite_Release(p) (p)->lpVtbl->Release(p)
+/*** IHlinkSite methods ***/
+#define IHlinkSite_QueryService(p,a,b,c,d) (p)->lpVtbl->QueryService(p,a,b,c,d)
+#define IHlinkSite_GetMoniker(p,a,b,c,d) (p)->lpVtbl->GetMoniker(p,a,b,c,d)
+#define IHlinkSite_ReadyToNavigate(p,a,b) (p)->lpVtbl->ReadyToNavigate(p,a,b)
+#define IHlinkSite_OnNavigationComplete(p,a,b,c,d) (p)->lpVtbl->OnNavigationComplete(p,a,b,c,d)
+#endif
+
+#endif
+
+HRESULT CALLBACK IHlinkSite_QueryService_Proxy(
+ IHlinkSite* This,
+ DWORD dwSiteData,
+ REFGUID guidService,
+ REFIID riid,
+ IUnknown** ppiunk);
+void __RPC_STUB IHlinkSite_QueryService_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkSite_GetMoniker_Proxy(
+ IHlinkSite* This,
+ DWORD dwSiteData,
+ DWORD dwAssign,
+ DWORD dwWhich,
+ IMoniker** ppimk);
+void __RPC_STUB IHlinkSite_GetMoniker_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkSite_ReadyToNavigate_Proxy(
+ IHlinkSite* This,
+ DWORD dwSiteData,
+ DWORD dwReserved);
+void __RPC_STUB IHlinkSite_ReadyToNavigate_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkSite_OnNavigationComplete_Proxy(
+ IHlinkSite* This,
+ DWORD dwSiteData,
+ DWORD dwreserved,
+ HRESULT hrError,
+ LPCWSTR pwzError);
+void __RPC_STUB IHlinkSite_OnNavigationComplete_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IHlinkSite_INTERFACE_DEFINED__ */
+
+#ifndef __IEnumHLITEM_FWD_DEFINED__
+#define __IEnumHLITEM_FWD_DEFINED__
+typedef interface IEnumHLITEM IEnumHLITEM;
+#endif
+
+typedef IEnumHLITEM *LPENUMHLITEM;
+typedef struct tagHLITEM {
+ ULONG uHLID;
+ LPWSTR pwzFriendlyName;
+} HLITEM;
+typedef HLITEM *LPHLITEM;
+/*****************************************************************************
+ * IEnumHLITEM interface
+ */
+#ifndef __IEnumHLITEM_INTERFACE_DEFINED__
+#define __IEnumHLITEM_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumHLITEM, 0x79eac9c6, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+IEnumHLITEM : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Next(
+ ULONG celt,
+ HLITEM* rgelt,
+ ULONG* pceltFetched) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Skip(
+ ULONG celt) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset(
+ ) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Clone(
+ IEnumHLITEM** ppienumhlitem) = 0;
+
+};
+#else
+typedef struct IEnumHLITEMVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IEnumHLITEM* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IEnumHLITEM* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IEnumHLITEM* This);
+
+ /*** IEnumHLITEM methods ***/
+ HRESULT (STDMETHODCALLTYPE *Next)(
+ IEnumHLITEM* This,
+ ULONG celt,
+ HLITEM* rgelt,
+ ULONG* pceltFetched);
+
+ HRESULT (STDMETHODCALLTYPE *Skip)(
+ IEnumHLITEM* This,
+ ULONG celt);
+
+ HRESULT (STDMETHODCALLTYPE *Reset)(
+ IEnumHLITEM* This);
+
+ HRESULT (STDMETHODCALLTYPE *Clone)(
+ IEnumHLITEM* This,
+ IEnumHLITEM** ppienumhlitem);
+
+ END_INTERFACE
+} IEnumHLITEMVtbl;
+interface IEnumHLITEM {
+ const IEnumHLITEMVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IEnumHLITEM_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumHLITEM_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumHLITEM_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumHLITEM methods ***/
+#define IEnumHLITEM_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumHLITEM_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+#define IEnumHLITEM_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumHLITEM_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+#endif
+
+#endif
+
+HRESULT CALLBACK IEnumHLITEM_Next_Proxy(
+ IEnumHLITEM* This,
+ ULONG celt,
+ HLITEM* rgelt,
+ ULONG* pceltFetched);
+void __RPC_STUB IEnumHLITEM_Next_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumHLITEM_Skip_Proxy(
+ IEnumHLITEM* This,
+ ULONG celt);
+void __RPC_STUB IEnumHLITEM_Skip_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumHLITEM_Reset_Proxy(
+ IEnumHLITEM* This);
+void __RPC_STUB IEnumHLITEM_Reset_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumHLITEM_Clone_Proxy(
+ IEnumHLITEM* This,
+ IEnumHLITEM** ppienumhlitem);
+void __RPC_STUB IEnumHLITEM_Clone_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IEnumHLITEM_INTERFACE_DEFINED__ */
+
+typedef IHlinkBrowseContext *LPHLINKBROWSECONTEXT;
+enum {
+ HLTB_DOCKEDLEFT = 0,
+ HLTB_DOCKEDTOP = 1,
+ HLTB_DOCKEDRIGHT = 2,
+ HLTB_DOCKEDBOTTOM = 3,
+ HLTB_FLOATING = 4
+};
+
+typedef struct _tagHLTBINFO {
+ ULONG uDockType;
+ RECT rcTbPos;
+} HLTBINFO;
+enum {
+ HLBWIF_HASFRAMEWNDINFO = 0x1,
+ HLBWIF_HASDOCWNDINFO = 0x2,
+ HLBWIF_FRAMEWNDMAXIMIZED = 0x4,
+ HLBWIF_DOCWNDMAXIMIZED = 0x8,
+ HLBWIF_HASWEBTOOLBARINFO = 0x10,
+ HLBWIF_WEBTOOLBARHIDDEN = 0x20
+};
+
+typedef struct _tagHLBWINFO {
+ ULONG cbSize;
+ DWORD grfHLBWIF;
+ RECT rcFramePos;
+ RECT rcDocPos;
+ HLTBINFO hltbinfo;
+} HLBWINFO;
+typedef HLBWINFO *LPHLBWINFO;
+enum {
+ HLID_INVALID = 0x0,
+ HLID_PREVIOUS = 0xffffffff,
+ HLID_NEXT = 0xfffffffe,
+ HLID_CURRENT = 0xfffffffd,
+ HLID_STACKBOTTOM = 0xfffffffc,
+ HLID_STACKTOP = 0xfffffffb
+};
+
+enum {
+ HLQF_ISVALID = 0x1,
+ HLQF_ISCURRENT = 0x2
+};
+
+/*****************************************************************************
+ * IHlinkBrowseContext interface
+ */
+#ifndef __IHlinkBrowseContext_INTERFACE_DEFINED__
+#define __IHlinkBrowseContext_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IHlinkBrowseContext, 0x79eac9c7, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+IHlinkBrowseContext : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE Register(
+ DWORD reserved,
+ IUnknown* piunk,
+ IMoniker* pimk,
+ DWORD* pdwRegister) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetObject(
+ IMoniker* pimk,
+ BOOL fBindIfRootRegistered,
+ IUnknown** ppiunk) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Revoke(
+ DWORD dwRegister) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetBrowseWindowInfo(
+ HLBWINFO* phlbwi) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBrowseWindowInfo(
+ HLBWINFO* phlbwi) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetInitialHlink(
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnNavigateHlink(
+ DWORD grfHLNF,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName,
+ ULONG* puHLID) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UpdateHlink(
+ ULONG uHLID,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE EnumNavigationStack(
+ DWORD dwReserved,
+ DWORD grfHLFNAMEF,
+ IEnumHLITEM** ppienumhlitem) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE QueryHlink(
+ DWORD grfHLQF,
+ ULONG uHLID) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetHlink(
+ ULONG uHLID,
+ IHlink** ppihl) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetCurrentHlink(
+ ULONG uHLID) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Clone(
+ IUnknown* piunkOuter,
+ REFIID riid,
+ IUnknown** ppiunkObj) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Close(
+ DWORD reserved) = 0;
+
+};
+#else
+typedef struct IHlinkBrowseContextVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IHlinkBrowseContext* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IHlinkBrowseContext* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IHlinkBrowseContext* This);
+
+ /*** IHlinkBrowseContext methods ***/
+ HRESULT (STDMETHODCALLTYPE *Register)(
+ IHlinkBrowseContext* This,
+ DWORD reserved,
+ IUnknown* piunk,
+ IMoniker* pimk,
+ DWORD* pdwRegister);
+
+ HRESULT (STDMETHODCALLTYPE *GetObject)(
+ IHlinkBrowseContext* This,
+ IMoniker* pimk,
+ BOOL fBindIfRootRegistered,
+ IUnknown** ppiunk);
+
+ HRESULT (STDMETHODCALLTYPE *Revoke)(
+ IHlinkBrowseContext* This,
+ DWORD dwRegister);
+
+ HRESULT (STDMETHODCALLTYPE *SetBrowseWindowInfo)(
+ IHlinkBrowseContext* This,
+ HLBWINFO* phlbwi);
+
+ HRESULT (STDMETHODCALLTYPE *GetBrowseWindowInfo)(
+ IHlinkBrowseContext* This,
+ HLBWINFO* phlbwi);
+
+ HRESULT (STDMETHODCALLTYPE *SetInitialHlink)(
+ IHlinkBrowseContext* This,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName);
+
+ HRESULT (STDMETHODCALLTYPE *OnNavigateHlink)(
+ IHlinkBrowseContext* This,
+ DWORD grfHLNF,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName,
+ ULONG* puHLID);
+
+ HRESULT (STDMETHODCALLTYPE *UpdateHlink)(
+ IHlinkBrowseContext* This,
+ ULONG uHLID,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName);
+
+ HRESULT (STDMETHODCALLTYPE *EnumNavigationStack)(
+ IHlinkBrowseContext* This,
+ DWORD dwReserved,
+ DWORD grfHLFNAMEF,
+ IEnumHLITEM** ppienumhlitem);
+
+ HRESULT (STDMETHODCALLTYPE *QueryHlink)(
+ IHlinkBrowseContext* This,
+ DWORD grfHLQF,
+ ULONG uHLID);
+
+ HRESULT (STDMETHODCALLTYPE *GetHlink)(
+ IHlinkBrowseContext* This,
+ ULONG uHLID,
+ IHlink** ppihl);
+
+ HRESULT (STDMETHODCALLTYPE *SetCurrentHlink)(
+ IHlinkBrowseContext* This,
+ ULONG uHLID);
+
+ HRESULT (STDMETHODCALLTYPE *Clone)(
+ IHlinkBrowseContext* This,
+ IUnknown* piunkOuter,
+ REFIID riid,
+ IUnknown** ppiunkObj);
+
+ HRESULT (STDMETHODCALLTYPE *Close)(
+ IHlinkBrowseContext* This,
+ DWORD reserved);
+
+ END_INTERFACE
+} IHlinkBrowseContextVtbl;
+interface IHlinkBrowseContext {
+ const IHlinkBrowseContextVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IHlinkBrowseContext_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IHlinkBrowseContext_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IHlinkBrowseContext_Release(p) (p)->lpVtbl->Release(p)
+/*** IHlinkBrowseContext methods ***/
+#define IHlinkBrowseContext_Register(p,a,b,c,d) (p)->lpVtbl->Register(p,a,b,c,d)
+#define IHlinkBrowseContext_GetObject(p,a,b,c) (p)->lpVtbl->GetObject(p,a,b,c)
+#define IHlinkBrowseContext_Revoke(p,a) (p)->lpVtbl->Revoke(p,a)
+#define IHlinkBrowseContext_SetBrowseWindowInfo(p,a) (p)->lpVtbl->SetBrowseWindowInfo(p,a)
+#define IHlinkBrowseContext_GetBrowseWindowInfo(p,a) (p)->lpVtbl->GetBrowseWindowInfo(p,a)
+#define IHlinkBrowseContext_SetInitialHlink(p,a,b,c) (p)->lpVtbl->SetInitialHlink(p,a,b,c)
+#define IHlinkBrowseContext_OnNavigateHlink(p,a,b,c,d,e) (p)->lpVtbl->OnNavigateHlink(p,a,b,c,d,e)
+#define IHlinkBrowseContext_UpdateHlink(p,a,b,c,d) (p)->lpVtbl->UpdateHlink(p,a,b,c,d)
+#define IHlinkBrowseContext_EnumNavigationStack(p,a,b,c) (p)->lpVtbl->EnumNavigationStack(p,a,b,c)
+#define IHlinkBrowseContext_QueryHlink(p,a,b) (p)->lpVtbl->QueryHlink(p,a,b)
+#define IHlinkBrowseContext_GetHlink(p,a,b) (p)->lpVtbl->GetHlink(p,a,b)
+#define IHlinkBrowseContext_SetCurrentHlink(p,a) (p)->lpVtbl->SetCurrentHlink(p,a)
+#define IHlinkBrowseContext_Clone(p,a,b,c) (p)->lpVtbl->Clone(p,a,b,c)
+#define IHlinkBrowseContext_Close(p,a) (p)->lpVtbl->Close(p,a)
+#endif
+
+#endif
+
+HRESULT CALLBACK IHlinkBrowseContext_Register_Proxy(
+ IHlinkBrowseContext* This,
+ DWORD reserved,
+ IUnknown* piunk,
+ IMoniker* pimk,
+ DWORD* pdwRegister);
+void __RPC_STUB IHlinkBrowseContext_Register_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_GetObject_Proxy(
+ IHlinkBrowseContext* This,
+ IMoniker* pimk,
+ BOOL fBindIfRootRegistered,
+ IUnknown** ppiunk);
+void __RPC_STUB IHlinkBrowseContext_GetObject_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_Revoke_Proxy(
+ IHlinkBrowseContext* This,
+ DWORD dwRegister);
+void __RPC_STUB IHlinkBrowseContext_Revoke_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_SetBrowseWindowInfo_Proxy(
+ IHlinkBrowseContext* This,
+ HLBWINFO* phlbwi);
+void __RPC_STUB IHlinkBrowseContext_SetBrowseWindowInfo_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_GetBrowseWindowInfo_Proxy(
+ IHlinkBrowseContext* This,
+ HLBWINFO* phlbwi);
+void __RPC_STUB IHlinkBrowseContext_GetBrowseWindowInfo_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_SetInitialHlink_Proxy(
+ IHlinkBrowseContext* This,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName);
+void __RPC_STUB IHlinkBrowseContext_SetInitialHlink_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_OnNavigateHlink_Proxy(
+ IHlinkBrowseContext* This,
+ DWORD grfHLNF,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName,
+ ULONG* puHLID);
+void __RPC_STUB IHlinkBrowseContext_OnNavigateHlink_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_UpdateHlink_Proxy(
+ IHlinkBrowseContext* This,
+ ULONG uHLID,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName);
+void __RPC_STUB IHlinkBrowseContext_UpdateHlink_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_EnumNavigationStack_Proxy(
+ IHlinkBrowseContext* This,
+ DWORD dwReserved,
+ DWORD grfHLFNAMEF,
+ IEnumHLITEM** ppienumhlitem);
+void __RPC_STUB IHlinkBrowseContext_EnumNavigationStack_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_QueryHlink_Proxy(
+ IHlinkBrowseContext* This,
+ DWORD grfHLQF,
+ ULONG uHLID);
+void __RPC_STUB IHlinkBrowseContext_QueryHlink_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_GetHlink_Proxy(
+ IHlinkBrowseContext* This,
+ ULONG uHLID,
+ IHlink** ppihl);
+void __RPC_STUB IHlinkBrowseContext_GetHlink_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_SetCurrentHlink_Proxy(
+ IHlinkBrowseContext* This,
+ ULONG uHLID);
+void __RPC_STUB IHlinkBrowseContext_SetCurrentHlink_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_Clone_Proxy(
+ IHlinkBrowseContext* This,
+ IUnknown* piunkOuter,
+ REFIID riid,
+ IUnknown** ppiunkObj);
+void __RPC_STUB IHlinkBrowseContext_Clone_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkBrowseContext_Close_Proxy(
+ IHlinkBrowseContext* This,
+ DWORD reserved);
+void __RPC_STUB IHlinkBrowseContext_Close_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IHlinkBrowseContext_INTERFACE_DEFINED__ */
+
+#ifndef __IHlinkTarget_FWD_DEFINED__
+#define __IHlinkTarget_FWD_DEFINED__
+typedef interface IHlinkTarget IHlinkTarget;
+#endif
+
+typedef IHlinkTarget *LPHLINKTARGET;
+/*****************************************************************************
+ * IHlinkTarget interface
+ */
+#ifndef __IHlinkTarget_INTERFACE_DEFINED__
+#define __IHlinkTarget_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IHlinkTarget, 0x79eac9c4, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+IHlinkTarget : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetBrowseContext(
+ IHlinkBrowseContext* pihlbc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBrowseContext(
+ IHlinkBrowseContext** ppihlbc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Navigate(
+ DWORD grfHLNF,
+ LPCWSTR pwzJumpLocation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMoniker(
+ LPCWSTR pwzLocation,
+ DWORD dwAssign,
+ IMoniker** ppimkLocation) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetFriendlyName(
+ LPCWSTR pwzLocation,
+ LPWSTR* ppwzFriendlyName) = 0;
+
+};
+#else
+typedef struct IHlinkTargetVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IHlinkTarget* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IHlinkTarget* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IHlinkTarget* This);
+
+ /*** IHlinkTarget methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetBrowseContext)(
+ IHlinkTarget* This,
+ IHlinkBrowseContext* pihlbc);
+
+ HRESULT (STDMETHODCALLTYPE *GetBrowseContext)(
+ IHlinkTarget* This,
+ IHlinkBrowseContext** ppihlbc);
+
+ HRESULT (STDMETHODCALLTYPE *Navigate)(
+ IHlinkTarget* This,
+ DWORD grfHLNF,
+ LPCWSTR pwzJumpLocation);
+
+ HRESULT (STDMETHODCALLTYPE *GetMoniker)(
+ IHlinkTarget* This,
+ LPCWSTR pwzLocation,
+ DWORD dwAssign,
+ IMoniker** ppimkLocation);
+
+ HRESULT (STDMETHODCALLTYPE *GetFriendlyName)(
+ IHlinkTarget* This,
+ LPCWSTR pwzLocation,
+ LPWSTR* ppwzFriendlyName);
+
+ END_INTERFACE
+} IHlinkTargetVtbl;
+interface IHlinkTarget {
+ const IHlinkTargetVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IHlinkTarget_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IHlinkTarget_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IHlinkTarget_Release(p) (p)->lpVtbl->Release(p)
+/*** IHlinkTarget methods ***/
+#define IHlinkTarget_SetBrowseContext(p,a) (p)->lpVtbl->SetBrowseContext(p,a)
+#define IHlinkTarget_GetBrowseContext(p,a) (p)->lpVtbl->GetBrowseContext(p,a)
+#define IHlinkTarget_Navigate(p,a,b) (p)->lpVtbl->Navigate(p,a,b)
+#define IHlinkTarget_GetMoniker(p,a,b,c) (p)->lpVtbl->GetMoniker(p,a,b,c)
+#define IHlinkTarget_GetFriendlyName(p,a,b) (p)->lpVtbl->GetFriendlyName(p,a,b)
+#endif
+
+#endif
+
+HRESULT CALLBACK IHlinkTarget_SetBrowseContext_Proxy(
+ IHlinkTarget* This,
+ IHlinkBrowseContext* pihlbc);
+void __RPC_STUB IHlinkTarget_SetBrowseContext_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkTarget_GetBrowseContext_Proxy(
+ IHlinkTarget* This,
+ IHlinkBrowseContext** ppihlbc);
+void __RPC_STUB IHlinkTarget_GetBrowseContext_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkTarget_Navigate_Proxy(
+ IHlinkTarget* This,
+ DWORD grfHLNF,
+ LPCWSTR pwzJumpLocation);
+void __RPC_STUB IHlinkTarget_Navigate_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkTarget_GetMoniker_Proxy(
+ IHlinkTarget* This,
+ LPCWSTR pwzLocation,
+ DWORD dwAssign,
+ IMoniker** ppimkLocation);
+void __RPC_STUB IHlinkTarget_GetMoniker_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkTarget_GetFriendlyName_Proxy(
+ IHlinkTarget* This,
+ LPCWSTR pwzLocation,
+ LPWSTR* ppwzFriendlyName);
+void __RPC_STUB IHlinkTarget_GetFriendlyName_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IHlinkTarget_INTERFACE_DEFINED__ */
+
+#ifndef __IHlinkFrame_FWD_DEFINED__
+#define __IHlinkFrame_FWD_DEFINED__
+typedef interface IHlinkFrame IHlinkFrame;
+#endif
+
+typedef IHlinkFrame *LPHLINKFRAME;
+/*****************************************************************************
+ * IHlinkFrame interface
+ */
+#ifndef __IHlinkFrame_INTERFACE_DEFINED__
+#define __IHlinkFrame_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IHlinkFrame, 0x79eac9c5, 0xbaf9, 0x11ce, 0x8c,0x82, 0x00,0xaa,0x00,0x4b,0xa9,0x0b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+IHlinkFrame : public IUnknown
+{
+ virtual HRESULT STDMETHODCALLTYPE SetBrowseContext(
+ IHlinkBrowseContext* pihlbc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBrowseContext(
+ IHlinkBrowseContext** ppihlbc) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Navigate(
+ DWORD grfHLNF,
+ LPBC pbc,
+ IBindStatusCallback* pibsc,
+ IHlink* pihlNavigate) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE OnNavigate(
+ DWORD grfHLNF,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName,
+ DWORD dwreserved) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE UpdateHlink(
+ ULONG uHLID,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName) = 0;
+
+};
+#else
+typedef struct IHlinkFrameVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ IHlinkFrame* This,
+ REFIID riid,
+ void** ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ IHlinkFrame* This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ IHlinkFrame* This);
+
+ /*** IHlinkFrame methods ***/
+ HRESULT (STDMETHODCALLTYPE *SetBrowseContext)(
+ IHlinkFrame* This,
+ IHlinkBrowseContext* pihlbc);
+
+ HRESULT (STDMETHODCALLTYPE *GetBrowseContext)(
+ IHlinkFrame* This,
+ IHlinkBrowseContext** ppihlbc);
+
+ HRESULT (STDMETHODCALLTYPE *Navigate)(
+ IHlinkFrame* This,
+ DWORD grfHLNF,
+ LPBC pbc,
+ IBindStatusCallback* pibsc,
+ IHlink* pihlNavigate);
+
+ HRESULT (STDMETHODCALLTYPE *OnNavigate)(
+ IHlinkFrame* This,
+ DWORD grfHLNF,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName,
+ DWORD dwreserved);
+
+ HRESULT (STDMETHODCALLTYPE *UpdateHlink)(
+ IHlinkFrame* This,
+ ULONG uHLID,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName);
+
+ END_INTERFACE
+} IHlinkFrameVtbl;
+interface IHlinkFrame {
+ const IHlinkFrameVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IHlinkFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IHlinkFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IHlinkFrame_Release(p) (p)->lpVtbl->Release(p)
+/*** IHlinkFrame methods ***/
+#define IHlinkFrame_SetBrowseContext(p,a) (p)->lpVtbl->SetBrowseContext(p,a)
+#define IHlinkFrame_GetBrowseContext(p,a) (p)->lpVtbl->GetBrowseContext(p,a)
+#define IHlinkFrame_Navigate(p,a,b,c,d) (p)->lpVtbl->Navigate(p,a,b,c,d)
+#define IHlinkFrame_OnNavigate(p,a,b,c,d,e) (p)->lpVtbl->OnNavigate(p,a,b,c,d,e)
+#define IHlinkFrame_UpdateHlink(p,a,b,c,d) (p)->lpVtbl->UpdateHlink(p,a,b,c,d)
+#endif
+
+#endif
+
+HRESULT CALLBACK IHlinkFrame_SetBrowseContext_Proxy(
+ IHlinkFrame* This,
+ IHlinkBrowseContext* pihlbc);
+void __RPC_STUB IHlinkFrame_SetBrowseContext_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkFrame_GetBrowseContext_Proxy(
+ IHlinkFrame* This,
+ IHlinkBrowseContext** ppihlbc);
+void __RPC_STUB IHlinkFrame_GetBrowseContext_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkFrame_Navigate_Proxy(
+ IHlinkFrame* This,
+ DWORD grfHLNF,
+ LPBC pbc,
+ IBindStatusCallback* pibsc,
+ IHlink* pihlNavigate);
+void __RPC_STUB IHlinkFrame_Navigate_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkFrame_OnNavigate_Proxy(
+ IHlinkFrame* This,
+ DWORD grfHLNF,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName,
+ DWORD dwreserved);
+void __RPC_STUB IHlinkFrame_OnNavigate_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+HRESULT CALLBACK IHlinkFrame_UpdateHlink_Proxy(
+ IHlinkFrame* This,
+ ULONG uHLID,
+ IMoniker* pimkTarget,
+ LPCWSTR pwzLocation,
+ LPCWSTR pwzFriendlyName);
+void __RPC_STUB IHlinkFrame_UpdateHlink_Stub(
+ IRpcStubBuffer* This,
+ IRpcChannelBuffer* pRpcChannelBuffer,
+ PRPC_MESSAGE pRpcMessage,
+ DWORD* pdwStubPhase);
+
+#endif /* __IHlinkFrame_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __WIDL_HLINK_H */