Added hlink.idl

Jacek Caban jack at itma.pwr.wroc.pl
Thu Aug 4 13:55:38 CDT 2005


Changelog:
    Added hlink.idl
-------------- next part --------------
Index: include/.cvsignore
===================================================================
RCS file: /home/wine/wine/include/.cvsignore,v
retrieving revision 1.15
diff -u -p -r1.15 .cvsignore
--- include/.cvsignore	13 Jul 2005 19:31:07 -0000	1.15
+++ include/.cvsignore	4 Aug 2005 18:49:48 -0000
@@ -11,6 +11,7 @@ dispex.h
 docobj.h
 downloadmgr.h
 exdisp.h
+hlink.h
 mediaobj.h
 mimeinfo.h
 mlang.h
Index: include/Makefile.in
===================================================================
RCS file: /home/wine/wine/include/Makefile.in,v
retrieving revision 1.182
diff -u -p -r1.182 Makefile.in
--- include/Makefile.in	26 Jul 2005 11:30:42 -0000	1.182
+++ include/Makefile.in	4 Aug 2005 18:49:49 -0000
@@ -16,6 +16,7 @@ IDL_SRCS = \
 	docobj.idl \
 	downloadmgr.idl \
 	exdisp.idl \
+	hlink.idl \
 	mediaobj.idl \
 	mimeinfo.idl \
 	mlang.idl \
Index: dlls/uuid/uuid.c
===================================================================
RCS file: /home/wine/wine/dlls/uuid/uuid.c,v
retrieving revision 1.13
diff -u -p -r1.13 uuid.c
--- dlls/uuid/uuid.c	26 Jul 2005 11:30:42 -0000	1.13
+++ dlls/uuid/uuid.c	4 Aug 2005 18:49:49 -0000
@@ -61,6 +61,7 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,
 #include "xmldom.h"
 #include "downloadmgr.h"
 #include "objsel.h"
+#include "hlink.h"
 
 /* FIXME: cguids declares GUIDs but does not define their values */
 
--- /dev/null	1970-01-01 01:00:00.000000000 +0100
+++ include/hlink.idl	2005-08-04 20:13:10.000000000 +0200
@@ -0,0 +1,351 @@
+/*
+ * Copyright 2005 Jacek Caban
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ */
+
+import "urlmon.idl";
+
+interface IHlinkSite;
+interface IHlinkBrowseContext;
+
+/*****************************************************************************
+ *    IHlink interface
+ */
+[
+    object,
+    uuid(79EAC9C3-BAF9-11CE-8C82-00AA004BA90B),
+    pointer_default(unique)
+]
+interface IHlink: IUnknown
+{
+    typedef [unique] IHlink *LPHLINK;
+
+    typedef enum {
+        HLNF_INTERNALJUMP          = 0x00000001,
+        HLNF_OPENINNEWWINDOW       = 0x00000002,
+        HLNF_NAVIGATINGBACK        = 0x00000004,
+        HLNF_NAVIGATINGFORWARD     = 0x00000008,
+        HLNF_NAVIGATINGTOSTACKITEM = 0x00000010,
+        HLNF_CREATENOHISTORY       = 0x00000020
+    } HLNF;
+
+    typedef enum {
+        HLINKGETREF_DEFAULT  = 0,
+        HLINKGETREF_ABSOLUTE = 1,
+        HLINKGETREF_RELATIVE = 2,
+    } HLINKGETREF;
+
+    typedef enum {
+        HLFNAMEF_DEFAULT          = 0x00000000,
+        HLFNAMEF_TRYCACHE         = 0x00000001,
+        HLFNAMEF_TRYPRETTYTARGET  = 0x00000002,
+        HLFNAMEF_TRYFULLTARGET    = 0x00000004,
+        HLFNAMEF_TRYWIN95SHORTCUT = 0x00000008
+    } HLFNAMEF;
+
+    typedef enum {
+        HLINKMISC_RELATIVE = 0x00000001,
+    } HLINKMISC;
+
+    typedef enum {
+        HLINKSETF_TARGET   = 0x00000001,
+        HLINKSETF_LOCATION = 0x00000002
+    } HLINKSETF;
+
+    HRESULT SetHlinkSite(
+        [in, unique] IHlinkSite *pihlSite,
+        [in] DWORD dwSiteData);
+
+    HRESULT GetHlinkSite(
+        [out] IHlinkSite **ppihlSite,
+        [out] DWORD *pdwSiteData);
+
+    HRESULT SetMonikerReference(
+        [in] DWORD grfHLSETF,
+        [in, unique] IMoniker *pimkTarget,
+        [in, unique] LPCWSTR pwzLocation);
+
+    HRESULT GetMonikerReference(
+        [in]  DWORD dwWhichRef,
+        [out] IMoniker **ppimkTarget,
+        [out] LPWSTR *ppwzLocation);
+
+    HRESULT SetStringReference(
+        [in] DWORD grfHLSETF,
+        [in, unique] LPCWSTR pwzTarget,
+        [in, unique] LPCWSTR pwzLocation);
+
+    HRESULT GetStringReference(
+        [in]  DWORD dwWhichRef,
+        [out] LPWSTR *ppwzTarget,
+        [out] LPWSTR *ppwzLocation);
+
+    HRESULT SetFriendlyName(
+        [in, unique] LPCWSTR pwzFriendlyName);
+
+    HRESULT GetFriendlyName(
+        [in]  DWORD grfHLFNAMEF,
+        [out] LPWSTR *ppwzFriendlyName);
+
+    HRESULT SetTargetFrameName(
+        [in, unique] LPCWSTR pwzTargetFrameName);
+
+    HRESULT GetTargetFrameName(
+        [out] LPWSTR *ppwzTargetFrameName);
+
+    HRESULT GetMiscStatus(
+        [out] DWORD *pdwStatus);
+
+    HRESULT Navigate(
+        [in] DWORD grfHLNF,
+        [in, unique] LPBC pibc,
+        [in, unique] IBindStatusCallback *pibsc,
+        [in, unique] IHlinkBrowseContext *pihlbc);
+
+    HRESULT SetAdditionalParams(
+        [in, unique] LPCWSTR pwzAdditionalParams);
+
+    HRESULT GetAdditionalParams(
+        [out] LPWSTR *ppwzAdditionalParams);
+}
+
+/*****************************************************************************
+ *    IHlink interface
+ */
+[
+    object,
+    uuid(79EAC9C2-BAF9-11CE-8C82-00AA004BA90B),
+    pointer_default(unique)
+]
+interface IHlinkSite: IUnknown
+{
+    typedef [unique] IHlinkSite *LPHLINKSITE;
+
+    typedef enum {
+        HLINKWHICHMK_CONTAINER = 1,
+        HLINKWHICHMK_BASE      = 2,
+    } HLINKWHICHMK;
+
+    HRESULT QueryService(
+        [in] DWORD dwSiteData,
+        [in] REFGUID guidService,
+        [in] REFIID riid,
+        [out, iid_is(riid)] IUnknown **ppiunk);
+
+    HRESULT GetMoniker(
+        [in] DWORD dwSiteData,
+        [in] DWORD dwAssign,
+        [in] DWORD dwWhich,
+        [out] IMoniker **ppimk);
+
+    HRESULT ReadyToNavigate(
+        [in] DWORD dwSiteData,
+        [in] DWORD dwReserved);
+
+    HRESULT OnNavigationComplete(
+        [in] DWORD dwSiteData,
+        [in] DWORD dwreserved,
+        [in] HRESULT hrError,
+        [in, unique] LPCWSTR pwzError);
+}
+
+/*****************************************************************************
+ *    IEnumHLITEM interface
+ */
+[
+    local,
+    object,
+    uuid(79EAC9C6-BAF9-11CE-8C82-00AA004BA90B),
+    pointer_default(unique)
+]
+interface IEnumHLITEM : IUnknown
+{
+    typedef [unique] IEnumHLITEM *LPENUMHLITEM;
+
+    typedef struct tagHLITEM {
+        ULONG  uHLID;
+        LPWSTR pwzFriendlyName;
+    } HLITEM;
+    typedef [unique] HLITEM *LPHLITEM;
+
+    HRESULT Next(
+        [in]  ULONG celt,
+        [out] HLITEM *rgelt,
+        [out] ULONG *pceltFetched);
+
+    HRESULT Skip(
+        [in] ULONG celt);
+
+    HRESULT Reset();
+
+    HRESULT Clone(
+        [out] IEnumHLITEM **ppienumhlitem);
+}
+
+/*****************************************************************************
+ *    IHlinkBrowseContext interface
+ */
+[
+    local,
+    object,
+    uuid(79EAC9C7-BAF9-11CE-8C82-00AA004BA90B),
+    pointer_default(unique)
+]
+interface IHlinkBrowseContext : IUnknown
+{
+    typedef [unique] 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   = 0x00000001,
+        HLBWIF_HASDOCWNDINFO     = 0x00000002,
+        HLBWIF_FRAMEWNDMAXIMIZED = 0x00000004,
+        HLBWIF_DOCWNDMAXIMIZED   = 0x00000008,
+        HLBWIF_HASWEBTOOLBARINFO = 0x00000010,
+        HLBWIF_WEBTOOLBARHIDDEN  = 0x00000020
+    };
+
+    typedef struct _tagHLBWINFO {
+        ULONG    cbSize;
+        DWORD    grfHLBWIF;
+        RECT     rcFramePos;
+        RECT     rcDocPos;
+        HLTBINFO hltbinfo;
+    } HLBWINFO;
+
+    typedef [unique] HLBWINFO *LPHLBWINFO;
+
+    enum {
+        HLID_INVALID     = 0x00000000,
+        HLID_PREVIOUS    = 0xFFFFFFFF,
+        HLID_NEXT        = 0xFFFFFFFE,
+        HLID_CURRENT     = 0xFFFFFFFD,
+        HLID_STACKBOTTOM = 0xFFFFFFFC,
+        HLID_STACKTOP    = 0xFFFFFFFB
+    };
+
+    enum {
+        HLQF_ISVALID   = 0x00000001,
+        HLQF_ISCURRENT = 0x00000002
+    };
+
+    HRESULT Register(
+        [in] DWORD reserved,
+        [in, unique] IUnknown *piunk,
+        [in, unique] IMoniker *pimk,
+        [out] DWORD *pdwRegister);
+
+    HRESULT GetObject(
+        [in, unique] IMoniker *pimk,
+        [in] BOOL fBindIfRootRegistered,
+        [out] IUnknown **ppiunk);
+
+    HRESULT Revoke(
+        [in] DWORD dwRegister);
+
+    HRESULT SetBrowseWindowInfo(
+        [in, unique] HLBWINFO *phlbwi);
+
+    HRESULT GetBrowseWindowInfo(
+        [out] HLBWINFO *phlbwi);
+
+    HRESULT SetInitialHlink(
+        [in, unique] IMoniker * pimkTarget,
+        [in, unique] LPCWSTR pwzLocation,
+        [in, unique] LPCWSTR pwzFriendlyName);
+
+    HRESULT OnNavigateHlink(
+        [in] DWORD grfHLNF,
+        [in, unique] IMoniker *pimkTarget,
+        [in, unique] LPCWSTR pwzLocation,
+        [in, unique] LPCWSTR pwzFriendlyName,
+        [out] ULONG *puHLID);
+
+    HRESULT UpdateHlink(
+        [in] ULONG uHLID,
+        [in, unique] IMoniker *pimkTarget,
+        [in, unique] LPCWSTR pwzLocation,
+        [in, unique] LPCWSTR pwzFriendlyName);
+
+    HRESULT EnumNavigationStack(
+        [in] DWORD dwReserved,
+        [in] DWORD grfHLFNAMEF,
+        [out] IEnumHLITEM **ppienumhlitem);
+
+    HRESULT QueryHlink(
+        [in] DWORD grfHLQF,
+        [in] ULONG uHLID);
+
+    HRESULT GetHlink(
+        [in] ULONG uHLID,
+        [out] IHlink **ppihl);
+
+    HRESULT SetCurrentHlink(
+        [in] ULONG uHLID);
+
+    HRESULT Clone(
+        [in, unique] IUnknown *piunkOuter,
+        [in] REFIID riid,
+        [out, iid_is(riid)] IUnknown **ppiunkObj);
+
+    HRESULT Close(
+        [in] DWORD reserved);
+}
+
+
+/*****************************************************************************
+ *    IHlinkTarget interface
+ */
+[
+    object,
+    uuid(79EAC9C4-BAF9-11CE-8C82-00AA004BA90B),
+    pointer_default(unique)
+]
+interface IHlinkTarget : IUnknown
+{
+    typedef [unique] IHlinkTarget *LPHLINKTARGET;
+
+    HRESULT SetBrowseContext(
+        [in, unique] IHlinkBrowseContext *pihlbc);
+
+    HRESULT GetBrowseContext(
+        [out] IHlinkBrowseContext **ppihlbc);
+
+    HRESULT Navigate(
+        [in] DWORD grfHLNF,
+        [in, unique] LPCWSTR pwzJumpLocation);
+
+    HRESULT GetMoniker(
+        [in,unique]  LPCWSTR pwzLocation,
+        [in] DWORD dwAssign,
+        [out] IMoniker **ppimkLocation);
+
+    HRESULT GetFriendlyName(
+        [in,unique]  LPCWSTR pwzLocation,
+        [out] LPWSTR *ppwzFriendlyName);
+}


More information about the wine-patches mailing list