From 6885248f14f6e14ec73d1b170551bb9742c06de3 Mon Sep 17 00:00:00 2001 From: Reece Dunn Date: Thu, 24 Jul 2008 23:51:19 +0100 Subject: [PATCH] urlmon: added the IInternetProtocolEx and IUri interfaces. --- include/urlmon.idl | 145 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 145 insertions(+), 0 deletions(-) diff --git a/include/urlmon.idl b/include/urlmon.idl index 83bc58b..f0675b8 100644 --- a/include/urlmon.idl +++ b/include/urlmon.idl @@ -1363,6 +1363,151 @@ typedef enum _tagINTERNETFEATURELIST FEATURE_ENTRY_COUNT } INTERNETFEATURELIST; +/***************************************************************************** + * IUri interface + */ +[ + local, + object, + uuid(A39EE748-6A27-4817-A6F2-13914BEF5890), + pointer_default(unique) +] +interface IUri : IUnknown +{ + typedef [unique] IUri *LPIURI; + + typedef enum + { + Uri_PROPERTY_ABSOLUTE_URI = 0, + Uri_PROPERTY_STRING_START = Uri_PROPERTY_ABSOLUTE_URI, + Uri_PROPERTY_AUTHORITY = 1, + Uri_PROPERTY_DISPLAY_URI = 2, + Uri_PROPERTY_DOMAIN = 3, + Uri_PROPERTY_EXTENSION = 4, + Uri_PROPERTY_FRAGMENT = 5, + Uri_PROPERTY_HOST = 6, + Uri_PROPERTY_PASSWORD = 7, + Uri_PROPERTY_PATH = 8, + Uri_PROPERTY_PATH_AND_QUERY = 9, + Uri_PROPERTY_QUERY = 10, + Uri_PROPERTY_RAW_URI = 11, + Uri_PROPERTY_SCHEME_NAME = 12, + Uri_PROPERTY_USER_INFO = 13, + Uri_PROPERTY_USER_NAME = 14, + Uri_PROPERTY_STRING_LAST = Uri_PROPERTY_USER_NAME, + Uri_PROPERTY_HOST_TYPE = 15, + Uri_PROPERTY_DWORD_START = Uri_PROPERTY_HOST_TYPE, + Uri_PROPERTY_PORT = 16, + Uri_PROPERTY_SCHEME = 17, + Uri_PROPERTY_ZONE = 18, + Uri_PROPERTY_DWORD_LAST = Uri_PROPERTY_ZONE + } Uri_PROPERTY; + + HRESULT GetPropertyBSTR( + [in] Uri_PROPERTY uriProp, + [out] BSTR *pbstrProperty, + [in] DWORD dwFlags); + + HRESULT GetPropertyLength( + [in] Uri_PROPERTY uriProp, + [out] DWORD *pcchProperty, + [in] DWORD dwFlags); + + HRESULT GetPropertyDWORD( + [in] Uri_PROPERTY uriProp, + [out] DWORD *pdwProperty, + [in] DWORD dwFlags); + + HRESULT HasProperty( + [in] Uri_PROPERTY uriProp, + [out] BOOL *pfHasProperty); + + HRESULT GetAbsoluteUri( + [out] BSTR *pbstrAbsoluteUri); + + HRESULT GetAuthority( + [out] BSTR *pbstrAuthority); + + HRESULT GetDisplayUri( + [out] BSTR *pbstrDisplayString); + + HRESULT GetDomain( + [out] BSTR *pbstrDomain); + + HRESULT GetExtension( + [out] BSTR *pbstrExtension); + + HRESULT GetFragment( + [out] BSTR *pbstrFragment); + + HRESULT GetHost( + [out] BSTR *pbstrHost); + + HRESULT GetPassword( + [out] BSTR *pbstrPassword); + + HRESULT GetPath( + [out] BSTR *pbstrPath); + + HRESULT GetPathAndQuery( + [out] BSTR *pbstrPathAndQuery); + + HRESULT GetQuery( + [out] BSTR *pbstrQuery); + + HRESULT GetRawUri( + [out] BSTR *pbstrRawUri); + + HRESULT GetSchemeName( + [out] BSTR *pbstrSchemeName); + + HRESULT GetUserInfo( + [out] BSTR *pbstrUserInfo); + + HRESULT GetUserName( + [out] BSTR *pbstrUserName); + + HRESULT GetHostType( + [out] DWORD *pdwHostType); + + HRESULT GetPort( + [out] DWORD *pdwPort); + + HRESULT GetScheme( + [out] DWORD *pdwScheme); + + HRESULT GetZone( + [out] DWORD *pdwZone); + + HRESULT GetProperties( + [out] LPDWORD pdwFlags); + + HRESULT IsEqual( + [in] IUri *pUri, + [out] BOOL *pfEqual); +} + +/***************************************************************************** + * IInternetProtocolEx interface + */ +[ + local, + object, + uuid(C7A98E66-1010-492c-A1C8-C809E1F75905), + pointer_default(unique) +] +interface IInternetProtocolEx : IInternetProtocol +{ + typedef [unique] IInternetProtocolEx *LPIINTERNETPROTOCOLEX; + + HRESULT StartEx( + [in] IUri *pUri, + [in] IInternetProtocolSink *pOIProtSink, + [in] IInternetBindInfo *pOIBindInfo, + [in] DWORD grfPI, + [in] HANDLE *dwReserved); +} + cpp_quote("DEFINE_GUID(CLSID_InternetSecurityManager, 0x7b8a2d94, 0x0ac9, 0x11d1, 0x89, 0x6c, 0x00, 0xc0, 0x4f, 0xB6, 0xbf, 0xc4);") cpp_quote("DEFINE_GUID(CLSID_InternetZoneManager, 0x7B8A2D95, 0x0AC9, 0x11D1, 0x89, 0x6C, 0x00, 0xC0, 0x4F, 0xB6, 0xBF, 0xC4);") cpp_quote("DEFINE_GUID(IID_IAsyncMoniker, 0x79EAC9D3, 0xBAF9, 0x11CE, 0x8C, 0x82, 0x00, 0xAA, 0x00, 0x4B, 0xA9, 0x0B);") -- 1.5.6.1.1071.g76fb