Sync most idl files with Wine head. (Samuel Serapion)
authorDaniel Reimer <reimer.daniel@freenet.de>
Mon, 5 Jul 2010 23:00:19 +0000 (23:00 +0000)
committerDaniel Reimer <reimer.daniel@freenet.de>
Mon, 5 Jul 2010 23:00:19 +0000 (23:00 +0000)
Modify shell32 and uuid to work with the new idls.
This will break build till next commit.

svn path=/trunk/; revision=47953

33 files changed:
reactos/dll/win32/shell32/shellord.c
reactos/include/crt/sys/types.h
reactos/include/dxsdk/amstream.idl
reactos/include/dxsdk/amvideo.idl [new file with mode: 0644]
reactos/include/dxsdk/axcore.idl
reactos/include/dxsdk/dxsdk.rbuild
reactos/include/psdk/asptlb.idl [new file with mode: 0644]
reactos/include/psdk/exdisp.idl
reactos/include/psdk/exdispid.h
reactos/include/psdk/msctf.idl
reactos/include/psdk/msdadc.idl [new file with mode: 0644]
reactos/include/psdk/msinkaut.idl [new file with mode: 0644]
reactos/include/psdk/msxml2.idl
reactos/include/psdk/netcon.idl [new file with mode: 0644]
reactos/include/psdk/oaidl.idl
reactos/include/psdk/propsys.idl [new file with mode: 0644]
reactos/include/psdk/psdk.rbuild
reactos/include/psdk/shellapi.h
reactos/include/psdk/shldisp.idl
reactos/include/psdk/shlguid.h
reactos/include/psdk/shlguid_undoc.h
reactos/include/psdk/shlobj.h
reactos/include/psdk/shobjidl.idl
reactos/include/psdk/shtypes.idl
reactos/include/psdk/structuredquerycondition.idl [new file with mode: 0644]
reactos/include/psdk/vmr9.idl [new file with mode: 0644]
reactos/include/psdk/vmrender.idl [new file with mode: 0644]
reactos/include/psdk/wbemcli.idl [new file with mode: 0644]
reactos/include/psdk/wincodec.idl
reactos/include/psdk/winnt.h
reactos/include/psdk/winuser.h
reactos/include/psdk/wtypes.idl
reactos/lib/sdk/uuid/uuid.c

index c25ddff..32fd1fd 100644 (file)
@@ -347,7 +347,7 @@ BOOL WINAPI RegisterShellHook(
  * ordinal. If you change the implementation here please update the code in
  * shlwapi as well.
  */
-int WINAPIV ShellMessageBoxW(
+int WINAPI ShellMessageBoxW(
        HINSTANCE hInstance,
        HWND hWnd,
        LPCWSTR lpText,
@@ -405,7 +405,7 @@ int WINAPIV ShellMessageBoxW(
  * NOTES
  *     Exported by ordinal
  */
-int WINAPIV ShellMessageBoxA(
+int WINAPI ShellMessageBoxA(
        HINSTANCE hInstance,
        HWND hWnd,
        LPCSTR lpText,
index adec817..977e8c7 100644 (file)
@@ -36,18 +36,17 @@ typedef unsigned int dev_t;
 # endif
 #endif
 
-#if defined(_WINE)
+#ifndef _PID_T_
+#define        _PID_T_
 #ifndef _WIN64
 typedef int    _pid_t;
 #else
 typedef __int64        _pid_t;
 #endif
+
 #ifndef        NO_OLDNAMES
-#ifndef __pid_t_defined
-#define __pid_t_defined
 typedef _pid_t pid_t;
-#endif /* __pid_t_defined */
-#endif
 #endif
+#endif /* Not _PID_T_ */
 
 #endif /* !_INC_TYPES */
index f7aea7c..2f32d44 100644 (file)
@@ -64,7 +64,6 @@ typedef [v1_enum] enum {
        RenderData = 2
 } OUTPUT_STATE;
 
-/*
 [
 object,
 uuid(7DB01C96-C0C3-11d0-8FF1-00C04FD9189D),
@@ -81,7 +80,6 @@ interface IDirectShowStream : IDispatch
        [propget, id(3), helpstring("property Audio")] HRESULT Audio([out, retval] OUTPUT_STATE *pVal);
        [propput, id(3), helpstring("propetry Audio")] HRESULT Audio([in] OUTPUT_STATE newVal);
 };
-*/
 
 [
 object,
@@ -93,7 +91,7 @@ interface IAMMultiMediaStream : IMultiMediaStream
        HRESULT Initialize(
                [in] STREAM_TYPE StreamType,
                [in] DWORD dwFlags,
-               [in, optional] IGraphBuilder *pFilterGraph);
+               [in] IGraphBuilder *pFilterGraph);
 
        HRESULT GetFilterGraph(
                [out] IGraphBuilder **ppGraphBuilder);
@@ -102,10 +100,10 @@ interface IAMMultiMediaStream : IMultiMediaStream
                [out] IMediaStreamFilter **ppFilter);
 
        HRESULT AddMediaStream(
-               [in, optional] IUnknown *pStreamObject,
-               [in, optional] const MSPID *PurposeId,
+               [in] IUnknown *pStreamObject,
+               [in] const MSPID *PurposeId,
                [in] DWORD dwFlags,
-               [out, optional] IMediaStream **ppNewStream);
+               [out] IMediaStream **ppNewStream);
 
        HRESULT OpenFile(
                [in] LPCWSTR pszFileName,
@@ -129,7 +127,7 @@ pointer_default(unique)
 interface IAMMediaStream : IMediaStream
 {
        HRESULT Initialize(
-               [in, optional] IUnknown *pSourceObject,
+               [in] IUnknown *pSourceObject,
                [in] DWORD dwFlags,
                [in] REFMSPID PurposeId,
                [in] const STREAM_TYPE StreamType);
@@ -233,9 +231,9 @@ interface IAMMediaTypeStream : IMediaStream
 
        HRESULT CreateSample(
                [in] long lSampleSize,
-               [in, optional] BYTE * pbBuffer,
+               [in] BYTE * pbBuffer,
                [in] DWORD dwFlags,
-               [in, optional] IUnknown *pUnkOuter,
+               [in] IUnknown *pUnkOuter,
                [out] IAMMediaTypeSample ** ppAMMediaTypeSample);
 
        HRESULT GetStreamAllocatorRequirements(
diff --git a/reactos/include/dxsdk/amvideo.idl b/reactos/include/dxsdk/amvideo.idl
new file mode 100644 (file)
index 0000000..ea486d5
--- /dev/null
@@ -0,0 +1,241 @@
+/*
+ * Copyright (C) 2003 Robert Shearman
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "objidl.idl";
+
+/* trick widl into thinking that it knows the DirectDraw types 
+ * as there is no IDL file for them (yet) */
+cpp_quote("#if 0")
+typedef void * LPDIRECTDRAW;
+typedef void DDSURFACEDESC,DDCAPS;
+typedef DWORD RGBQUAD;
+typedef LONGLONG REFERENCE_TIME;
+typedef struct
+{
+    DWORD      biSize;
+    LONG       biWidth;
+    LONG       biHeight;
+    WORD       biPlanes;
+    WORD       biBitCount;
+    DWORD      biCompression;
+    DWORD      biSizeImage;
+    LONG       biXPelsPerMeter;
+    LONG       biYPelsPerMeter;
+    DWORD      biClrUsed;
+    DWORD      biClrImportant;
+} BITMAPINFOHEADER, *PBITMAPINFOHEADER, *LPBITMAPINFOHEADER;
+cpp_quote("#endif")
+
+cpp_quote("#include <ddraw.h>")
+
+cpp_quote("#define AMDDS_NONE 0x00")
+cpp_quote("#define AMDDS_DCIPS 0x01")
+cpp_quote("#define AMDDS_PS 0x02")
+cpp_quote("#define AMDDS_RGBOVR 0x04")
+cpp_quote("#define AMDDS_YUVOVR 0x08")
+cpp_quote("#define AMDDS_RGBOFF 0x10")
+cpp_quote("#define AMDDS_YUVOFF 0x20")
+cpp_quote("#define AMDDS_RGBFLP 0x40")
+cpp_quote("#define AMDDS_YUVFLP 0x80")
+cpp_quote("#define AMDDS_ALL 0xFF")
+cpp_quote("#define AMDDS_DEFAULT AMDDS_ALL")
+
+cpp_quote("#define AMDDS_YUV (AMDDS_YUVOFF | AMDDS_YUVOVR | AMDDS_YUVFLP)")
+cpp_quote("#define AMDDS_RGB (AMDDS_RGBOFF | AMDDS_RGBOVR | AMDDS_RGBFLP)")
+cpp_quote("#define AMDSS_PRIMARY (AMDDS_DCIPS | AMDDS_PS)")
+
+[
+    object,
+    /* uuid(36d39eb0-dd75-11ce-bf0e-00aa0055595a)  conflicts with uuids.h */
+    pointer_default(unique),
+    local
+]
+interface IDirectDrawVideo : IUnknown
+{
+    HRESULT GetSwitches([out] DWORD * pSwitches);
+    HRESULT SetSwitches([in] DWORD Switches);
+    HRESULT GetCaps([out] DDCAPS * pCaps);
+    HRESULT GetEmulatedCaps([out] DDCAPS *pCaps);
+    HRESULT GetSurfaceDesc([out] DDSURFACEDESC * pSurfaceDesc);
+    HRESULT GetFourCCCodes([out] DWORD * pCount, [out] DWORD * pCodes);
+    HRESULT SetDirectDraw([in] LPDIRECTDRAW pDirectDraw);
+    HRESULT GetDirectDraw([out] LPDIRECTDRAW * ppDirectDraw);
+    HRESULT GetSurfaceType([out] DWORD * pSurfaceType);
+    HRESULT SetDefault();
+    HRESULT UseScanLine([in] long UseScanLine);
+    HRESULT CanUseScanLine([out] long * UseScanLine);
+    HRESULT UseOverlayStretch([in] long UseOverlayStretch);
+    HRESULT CanUseOverlayStretch([out] long * UseOverlayStretch);
+    HRESULT UseWhenFullScreen([in] long UseWhenFullScreen);
+    HRESULT WillUseFullScreen([out] long * UseWhenFullScreen);
+}
+
+[
+    object,
+    /* uuid(1bd0ecb0-f8e2-11ce-aac6-0020af0b99a3)  conflicts with uuids.h */
+    pointer_default(unique),
+    local
+]
+interface IQualProp : IUnknown
+{
+    [propget] HRESULT FramesDroppedInRenderer([out] int * pcFrames);
+    [propget] HRESULT FramesDrawn([out] int * pcFramesDrawn);
+    [propget] HRESULT AvgFrameRate([out] int * piAvgFrameRate);
+    [propget] HRESULT Jitter([out] int * iJitter);
+    [propget] HRESULT AvgSyncOffset([out] int * piAvg);
+    [propget] HRESULT DevSyncOffset([out] int * piDev);
+}
+
+[
+    object,
+    /* uuid(dd1d7110-7836-11cf-bf47-00aa0055595a)  conflicts with uuids.h */
+    pointer_default(unique)
+]
+interface IFullScreenVideo : IUnknown
+{
+    HRESULT CountModes([out] long * pModes);
+    HRESULT GetModeInfo([in] long Mode, [out] long * pWidth, [out] long * pHeight, [out] long * pDepth);
+    HRESULT GetCurrentMode([out] long * pMode);
+    HRESULT IsModeAvailable([in] long Mode);
+    HRESULT IsModeEnabled([in] long Mode);
+    HRESULT SetEnabled([in] long Mode, [in] long bEnabled);
+    HRESULT GetClipFactor([out] long * pClipFactor);
+    HRESULT SetClipFactor([in] long ClipFactor);
+    HRESULT SetMessageDrain([in] HWND hwnd);
+    HRESULT GetMessageDrain([out] HWND * hwnd);
+    HRESULT SetMonitor([in] long Monitor);
+    HRESULT GetMonitor([out] long * Monitor);
+    HRESULT HideOnDeactivate([in] long Hide);
+    HRESULT IsHideOnDeactivate();
+    HRESULT SetCaption([in] BSTR strCaption);
+    HRESULT GetCaption([out] BSTR * pstrCaption);
+    HRESULT SetDefault();
+}
+
+[
+    object,
+    /* uuid(53479470-f1dd-11cf-bc42-00aa00ac74f6)  conflicts with uuids.h */
+    pointer_default(unique),
+    local
+]
+interface IFullScreenVideoEx : IFullScreenVideo
+{
+    HRESULT SetAcceleratorTable([in] HWND hwnd, [in] HACCEL hAccel);
+    HRESULT GetAcceleratorTable([out] HWND * phwnd, [out] HACCEL * phAccel);
+    HRESULT KeepPixelAspectRatio([in] long KeepAspect);
+    /* FIXME: not sure is this next method is an [out] */
+    HRESULT IsKeepPixelAspectRatio([out] long * pKeepAspect);
+}
+
+[
+    object,
+    /* uuid(61ded640-e912-11ce-a099-00aa00479a58)  conflicts with uuids.h */
+    pointer_default(unique),
+    local
+]
+interface IBaseVideoMixer : IUnknown
+{
+    HRESULT SetLeadPin([in] int iPin);
+    HRESULT GetLeadPin([out] int * piPin);
+    HRESULT GetInputPinCount([out] int * piPinCount);
+    HRESULT IsUsingClock([out] int * pbValue);
+    HRESULT SetUsingClock([in] int bValue);
+    HRESULT GetClockPeriod([out] int * pbValue);
+    HRESULT SetClockPeriod([in] int bValue);
+}
+
+#define iPALETTE_COLORS 256
+#define iMASK_COLORS 3
+
+cpp_quote("#define iPALETTE_COLORS 256")
+cpp_quote("#define iEGA_COLORS 16")
+cpp_quote("#define iMASK_COLORS 3")
+cpp_quote("#define iTRUECOLOR 16")
+cpp_quote("#define iRED 0")
+cpp_quote("#define iGREEN 1")
+cpp_quote("#define iBLUE 2")
+cpp_quote("#define iPALETTE 8")
+cpp_quote("#define iMAXBITS 8")
+
+typedef struct tag_TRUECOLORINFO
+{
+    DWORD dwBitMasks[iMASK_COLORS];
+    RGBQUAD bmiColors[iPALETTE_COLORS];
+} TRUECOLORINFO;
+
+typedef struct tagVIDEOINFOHEADER
+{
+    RECT rcSource;
+    RECT rcTarget;
+    DWORD dwBitRate;
+    DWORD dwBitErrorRate;
+    REFERENCE_TIME AvgTimePerFrame;
+
+    BITMAPINFOHEADER bmiHeader;
+} VIDEOINFOHEADER;
+
+typedef struct tagVIDEOINFO
+{
+    RECT rcSource;
+    RECT rcTarget;
+    DWORD dwBitRate;
+    DWORD dwBitErrorRate;
+    REFERENCE_TIME AvgTimePerFrame;
+
+    BITMAPINFOHEADER bmiHeader;
+
+    union
+    {
+        RGBQUAD bmiColors[iPALETTE_COLORS];
+        DWORD dwBitMasks[iMASK_COLORS];
+        TRUECOLORINFO TrueColorInfo;
+    } DUMMYUNIONNAME;
+} VIDEOINFO;
+
+typedef struct tagMPEG1VIDEOINFO
+{
+    VIDEOINFOHEADER hdr;
+    DWORD dwStartTimeCode;
+    DWORD cbSequenceHeader;
+    BYTE bSequenceHeader[1];
+} MPEG1VIDEOINFO;
+
+cpp_quote("#define MAX_SIZE_MPEG1_SEQUENCE_INFO 140")
+cpp_quote("#define MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader)")
+
+typedef struct tagAnalogVideoInfo
+{
+    RECT rcSource;
+    RECT rcTarget;
+    DWORD dwActiveWidth;
+    DWORD dwActiveHeight;
+    REFERENCE_TIME AvgTimePerFrame;
+} ANALOGVIDEOINFO;
+
+typedef enum
+{
+    AM_PROPERTY_FRAMESTEP_STEP = 0x01,
+    AM_PROPERTY_FRAMESTEP_CANCEL = 0x02,
+    AM_PROPERTY_FRAMESTEP_CANSTEP = 0x03,
+    AM_PROPERTY_FRAMESTEP_CANSTEPMULTIPLE = 0x04
+} AM_PROPERTY_FRAMESTEP;
+
+typedef struct _AM_FRAMESTEP_STEP
+{
+    DWORD dwFramesToStep;
+} AM_FRAMESTEP_STEP;
index 683003e..cebc137 100644 (file)
@@ -47,7 +47,10 @@ typedef enum _PinDirection
 cpp_quote("#define MAX_PIN_NAME    128")
 cpp_quote("#define MAX_FILTER_NAME 128")
 
+cpp_quote("#ifndef REFERENCE_TIME_DEFINED")
+cpp_quote("#define REFERENCE_TIME_DEFINED")
 typedef LONGLONG REFERENCE_TIME;
+cpp_quote("#endif")
 
 cpp_quote("#ifndef REFTIME_DEFINED")
 cpp_quote("#define REFTIME_DEFINED")
index 1d91680..31648d4 100644 (file)
@@ -1,6 +1,7 @@
 <?xml version="1.0"?>
 <!DOCTYPE module SYSTEM "../../tools/rbuild/project.dtd">
 <module name="dxsdk" type="idlheader">
+       <file>amvideo.idl</file>
        <file>amstream.idl</file>
        <file>austream.idl</file>
        <file>bdatif.idl</file>
diff --git a/reactos/include/psdk/asptlb.idl b/reactos/include/psdk/asptlb.idl
new file mode 100644 (file)
index 0000000..608d220
--- /dev/null
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2010 Alistair Leslie-Hughes
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "unknwn.idl";
+import "objidl.idl";
+import "oaidl.idl";
+
+[
+    object,
+    dual,
+    uuid(D97A6DA0-A864-11cf-83BE-00A0C90C2BD8)
+]
+interface IRequestDictionary : IDispatch
+{
+    [propget]
+    HRESULT Item(IRequestDictionary *iface, [in, optional] VARIANT Var,
+        [retval, out] VARIANT *pVariantReturn);
+
+    [restricted, propget]
+    HRESULT _NewEnum(IRequestDictionary *iface, [retval, out] IUnknown **ppEnumReturn);
+
+    [propget]
+    HRESULT Count(IRequestDictionary *iface, [retval, out] int *cStrRet);
+
+    [propget]
+    HRESULT Key(IRequestDictionary *iface, [in] VARIANT VarKey, [retval, out]VARIANT *pvar);
+};
+
+[
+    object,
+    dual,
+    uuid(D97A6DA0-A864-11cf-83BE-00A0C90C2BD8)
+]
+interface IResponse : IDispatch
+{
+    [propget]
+    HRESULT Buffer(IResponse *iface, [retval, out] VARIANT_BOOL *fIsBuffering);
+
+    [propput]
+    HRESULT Buffer(IResponse *iface, [in] VARIANT_BOOL fIsBuffering);
+
+    [propget]
+    HRESULT ContentType(IResponse *iface, [retval, out] BSTR *pbstrContentTypeRet);
+
+    [propput]
+    HRESULT ContentType(IResponse *iface, [in] BSTR bstrContentType);
+
+    [propget]
+    HRESULT Expires(IResponse *iface, [retval, out] VARIANT *pvarExpiresMinutesRet);
+
+    [propput]
+    HRESULT Expires(IResponse *iface, [in] long lExpiresMinutes);
+
+    [propget]
+    HRESULT ExpiresAbsolute(IResponse *iface, [retval, out] VARIANT *pvarExpiresRet);
+
+    [propput]
+    HRESULT ExpiresAbsolute(IResponse *iface, [in] DATE dtExpires);
+
+    [propget]
+    HRESULT Cookies(IResponse *iface, [retval, out] IRequestDictionary **ppCookies);
+
+    [propget]
+    HRESULT Status(IResponse *iface, [retval][out] BSTR *pbstrStatusRet);
+
+    [propput]
+    HRESULT Status(IResponse *iface, [in] BSTR bstrStatus);
+
+    [hidden]
+    HRESULT Add(IResponse *iface, [in] BSTR bstrHeaderValue, [in] BSTR bstrHeaderName);
+
+    HRESULT AddHeader(IResponse *iface, [in] BSTR bstrHeaderName, [in] BSTR bstrHeaderValue);
+
+    HRESULT AppendToLog(IResponse *iface, [in] BSTR bstrLogEntry);
+
+    HRESULT BinaryWrite(IResponse *iface, [in] VARIANT varInput);
+
+    HRESULT Clear(IResponse *iface);
+
+    HRESULT End(IResponse *iface);
+
+    HRESULT Flush(IResponse *iface);
+
+    HRESULT Redirect(IResponse *iface, [in] BSTR bstrURL);
+
+    HRESULT Write(IResponse *iface, [in] VARIANT varText);
+
+    [hidden]
+    HRESULT WriteBlock(IResponse *iface, [in] short iBlockNumber);
+
+    HRESULT IsClientConnected(IResponse *iface, [retval, out] VARIANT_BOOL *pfIsClientConnected);
+
+    [propget]
+    HRESULT get_CharSet( IResponse *iface, [retval, out] BSTR *pbstrCharSetRet);
+
+    [propput]
+    HRESULT put_CharSet(IResponse *iface, [in] BSTR bstrCharSet);
+
+    HRESULT Pics(IResponse *iface, [in] BSTR bstrHeaderValue);
+
+    [propget]
+    HRESULT get_CacheControl(IResponse *iface, [retval, out] BSTR *pbstrCacheControl);
+
+    [propput]
+    HRESULT put_CacheControl(IResponse *iface, [in] BSTR bstrCacheControl);
+
+    [propget]
+    HRESULT get_CodePage(IResponse *iface, [retval, out] long *plvar);
+
+    [propput]
+    HRESULT put_CodePage(IResponse *iface, [in] long lvar);
+
+    [propget]
+    HRESULT get_LCID(IResponse *iface, [retval, out] long *plvar);
+
+    [propput]
+    HRESULT put_LCID(IResponse *iface, [in] long lvar);
+};
index 363e61a..808663e 100644 (file)
@@ -433,6 +433,41 @@ dispinterface DWebBrowserEvents2
 
     [id(DISPID_PRIVACYIMPACTEDSTATECHANGE)]
     void PrivacyImpactedStateChange([in] VARIANT_BOOL bImpacted);
+
+    [id(DISPID_NEWWINDOW3)]
+    void NewWindow3(
+            [in, out] IDispatch **ppDisp,
+            [in, out] VARIANT_BOOL *Cancel,
+            [in] DWORD dwFlags,
+            [in] BSTR bstrUrlContext,
+            [in] BSTR bstrUrl);
+
+    [id(DISPID_SETPHISHINGFILTERSTATUS)]
+    void SetPhishingFilterStatus([in] long PhishingFilterStatus);
+
+    [id(DISPID_WINDOWSTATECHANGED)]
+    void WindowStateChanged(
+            [in] DWORD dwWindowStateFlags,
+            [in] DWORD dwValidFlagsMask);
+
+    [id(DISPID_NEWPROCESS)]
+    void NewProcess(
+            [in] long lCauseFlag,
+            [in] IDispatch *pWB2,
+            [in, out] VARIANT_BOOL *Cancel);
+
+    [id(DISPID_THIRDPARTYURLBLOCKED)]
+    void ThirdPartyUrlBlocked(
+            [in] VARIANT *URL,
+            [in] DWORD dwCount);
+
+    [id(DISPID_REDIRECTXDOMAINBLOCKED)]
+    void RedirectXDomainBlocked(
+            [in] IDispatch *pDisp,
+            [in] VARIANT *StartURL,
+            [in] VARIANT *RedirectURL,
+            [in] VARIANT *Frame,
+            [in] VARIANT *StatusCode);
 }
 
 [
index 2f02f8a..232cee6 100644 (file)
 #define DISPID_FILEDOWNLOAD          270
 #define DISPID_NAVIGATEERROR         271
 #define DISPID_PRIVACYIMPACTEDSTATECHANGE 272
+#define DISPID_NEWWINDOW3                 273
+#define DISPID_VIEWUPDATE                 281
+#define DISPID_SETPHISHINGFILTERSTATUS    282
+#define DISPID_WINDOWSTATECHANGED         283
+#define DISPID_NEWPROCESS                 284
+#define DISPID_THIRDPARTYURLBLOCKED       285
+#define DISPID_REDIRECTXDOMAINBLOCKED     286
 
 #define DISPID_PRINTTEMPLATEINSTANTIATION 225
 #define DISPID_PRINTTEMPLATETEARDOWN      226
index fcb568e..2ed3866 100644 (file)
@@ -44,7 +44,7 @@ cpp_quote("EXTERN_C const CLSID CLSID_TF_ThreadMgr;")
 cpp_quote("EXTERN_C const CLSID CLSID_TF_InputProcessorProfiles;")
 cpp_quote("EXTERN_C const CLSID CLSID_TF_LangBarMgr;")
 cpp_quote("EXTERN_C const CLSID CLSID_TF_CategoryMgr;")
-cpp_quote("DEFINE_GUID(CLSID_TF_DisplayAttributeMgr,0x3ce74de4,0x53d3,0x4d74,0x8b,0x83,0x43,0x1b,0x38,0x28,0xba,0x53);")
+cpp_quote("EXTERN_C const CLSID CLSID_TF_DisplayAttributeMgr;")
 
 /* GUIDs for Compartments */
 cpp_quote("EXTERN_C const GUID GUID_COMPARTMENT_KEYBOARD_DISABLED;")
diff --git a/reactos/include/psdk/msdadc.idl b/reactos/include/psdk/msdadc.idl
new file mode 100644 (file)
index 0000000..b1954c2
--- /dev/null
@@ -0,0 +1,92 @@
+/*
+ * Copyright 2009 Huw Davies
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "oaidl.idl";
+import "ocidl.idl";
+import "oledb.idl";
+
+[
+    object,
+    pointer_default(unique),
+    uuid(0c733a8d-2a1c-11ce-ade5-00aa0044773d)
+]
+interface IDataConvert : IUnknown
+{
+    typedef DWORD DBDATACONVERT;
+
+    enum DBDATACONVERTENUM
+    {
+        DBDATACONVERT_DEFAULT = 0,
+        DBDATACONVERT_SETDATABEHAVIOR = 1,
+        DBDATACONVERT_LENGTHFROMNTS = 2,
+        DBDATACONVERT_DSTISFIXEDLENGTH = 4,
+        DBDATACONVERT_DECIMALSCALE = 8
+    };
+
+    [local] HRESULT DataConvert([in] DBTYPE wSrcType,
+                                [in] DBTYPE wDstType,
+                                [in] DBLENGTH cbSrcLength,
+                                [in, out] DBLENGTH *pcbDstLength,
+                                [in] void *pSrc,
+                                [out] void *pDst,
+                                [in] DBLENGTH cbDstMaxLength,
+                                [in] DBSTATUS dbsSrcStatus,
+                                [out] DBSTATUS *pdbsDstStatus,
+                                [in] BYTE bPrecision,
+                                [in] BYTE bScale,
+                                [in] DBDATACONVERT dwFlags);
+
+
+    HRESULT CanConvert([in] DBTYPE wSrcType,
+                       [in] DBTYPE wDstType);
+
+
+    [local] HRESULT GetConversionSize([in] DBTYPE wSrcType,
+                                      [in] DBTYPE wDstType,
+                                      [in] DBLENGTH *pcbSrcLength,
+                                      [out] DBLENGTH *pcbDstLength,
+                                      [in, size_is(*pcbSrcLength)] void *pSrc);
+};
+
+[
+    object,
+    pointer_default(unique),
+    uuid(0c733a9c-2a1c-11ce-ade5-00aa0044773d)
+]
+interface IDCInfo : IUnknown
+{
+    typedef DWORD DCINFOTYPE;
+
+    enum DCINFOTYPEENUM
+    {
+        DCINFOTYPE_VERSION = 1
+    };
+
+    typedef struct tagDCINFO
+    {
+        DCINFOTYPE eInfoType;
+        VARIANT vData;
+    } DCINFO;
+
+    HRESULT GetInfo([in] ULONG cInfo,
+                    [in, size_is(cInfo)] DCINFOTYPE rgeInfoType[],
+                    [out, size_is(cInfo)] DCINFO **prgInfo);
+
+    HRESULT SetInfo([in] ULONG cInfo,
+                    [in, size_is(cInfo)] DCINFO prgInfo[]);
+};
diff --git a/reactos/include/psdk/msinkaut.idl b/reactos/include/psdk/msinkaut.idl
new file mode 100644 (file)
index 0000000..12dc107
--- /dev/null
@@ -0,0 +1,1009 @@
+/* Copyright (C) 2007 C John Klehm
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "oaidl.idl";
+import "ocidl.idl";
+
+[
+    uuid(7D868ACD-1A5D-4A47-A247-F39741353012),
+    version(1.0)
+]
+library MSINKAUTLib
+{
+    importlib("stdole2.tlb");
+
+    typedef float single;
+
+    typedef enum InkBoundingBoxMode {
+        IBBM_Default = 0,
+        IBBM_NoCurveFit = 1,
+        IBBM_CurveFit = 2,
+        IBBM_PointsOnly = 3,
+        IBBM_Union = 4
+    } InkBoundingBoxMode;
+
+    typedef enum InkExtractFlags {
+        IEF_CopyFromOriginal = 0x0,
+        IEF_RemoveFromOriginal = 0x1,
+        IEF_Default = IEF_RemoveFromOriginal
+    } InkExtractFlags;
+
+    typedef enum InkPersistenceFormat {
+        IPF_InkSerializeFormat = 0,
+        IPF_Base64InkSerializedFormat = 1,
+        IPF_GIF = 2,
+        IPF_Base64GIF = 3
+    } InkPersistenceFormat;
+
+    typedef enum InkPersistenceCompressionMode
+    {
+        IPCM_Default = 0,
+        IPCM_MaximumCompression = 1,
+        IPCM_NoCompression = 2
+    } InkPersistenceCompressionMode;
+
+    typedef enum InkPenTip {
+        IPT_Ball = 0,
+        IPT_Rectangle = 1
+    } InkPenTip;
+
+    typedef enum InkRasterOperation {
+        IRO_Black = 1,
+        IRO_NotMergePen,
+        IRO_MaskNotPen,
+        IRO_NotCopyPen,
+        IRO_MaskPenNot,
+        IRO_Not,
+        IRO_XOrPen,
+        IRO_NotMaskPen,
+        IRO_MaskPen,
+        IRO_NotXOrPen,
+        IRO_NoOperation,
+        IRO_MergeNotPen,
+        IRO_CopyPen,
+        IRO_MergePenNot,
+        IRO_MergePen,
+        IRO_White
+    } InkRasterOperation;
+
+    typedef enum InkClipboardModes {
+        ICB_Copy = 0,
+        ICB_Cut = 0x1,
+        ICB_DelayedCopy = 0x20,
+        ICB_ExtractOnly = 0x30,
+        ICB_Default = ICB_Copy
+    } InkClipboardModes;
+
+    typedef enum InkClipboardFormats {
+        ICF_None = 0,
+        ICF_InkSerializedFormat = 0x1,
+        ICF_SketchInk = 0x2,
+        ICF_TextInk = 0x6,
+        ICF_EnhancedMetafile = 0x8,
+        ICF_Metafile = 0x20,
+        ICF_Bitmap = 0x40,
+        ICF_PasteMask = 0x7,
+        ICF_CopyMask = 0x7f,
+        ICF_Default = ICF_CopyMask
+    } InkClipboardFormats;
+
+    typedef enum InkRecognitionConfidence
+    {
+        IRC_Strong = 0,
+        IRC_Intermediate = 1,
+        IRC_Poor = 2
+    } InkRecognitionConfidence;
+
+    [
+        odl,
+        uuid(DB489209-B7C3-411D-90F6-1548CFFF271E),
+        dual,
+        oleautomation
+    ]
+    interface IInkExtendedProperty : IDispatch {
+        [id(0x00000001), propget] HRESULT Guid([out, retval] BSTR* Guid);
+        [id(0x00000002), propget] HRESULT Data([out, retval] VARIANT* Data);
+        [id(0x00000002), propput] HRESULT Data([in] VARIANT Data);
+    };
+
+    [
+        odl,
+        uuid(89F2A8BE-95A9-4530-8B8F-88E971E3E25F),
+        dual,
+        oleautomation
+    ]
+    interface IInkExtendedProperties : IDispatch {
+        HRESULT Count([out, retval] long* Count);
+        HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
+        HRESULT Item(
+            [in] VARIANT Identifier,
+            [out, retval] IInkExtendedProperty** Item);
+        HRESULT Add(
+            [in] BSTR Guid,
+            [in] VARIANT Data,
+            [out, retval] IInkExtendedProperty** InkExtendedProperty);
+        HRESULT Remove([in] VARIANT Identifier);
+        HRESULT Clear();
+        HRESULT DoesPropertyExist(
+            [in] BSTR Guid,
+            [out, retval] VARIANT_BOOL* DoesPropertyExist);
+    };
+
+    [
+        odl,
+        uuid(BF519B75-0A15-4623-ADC9-C00D436A8092),
+        dual,
+        oleautomation
+    ]
+    interface IInkDrawingAttributes : IDispatch {
+        [id(0x00000002), propget] HRESULT Color(
+            [out, retval] long* CurrentColor);
+        [id(0x00000002), propput] HRESULT Color([in] long CurrentColor);
+        [id(0x00000003), propget] HRESULT Width(
+            [out, retval] single* CurrentWidth);
+        [id(0x00000003), propput] HRESULT Width([in] single CurrentWidth);
+        [id(0x00000001), propget] HRESULT Height(
+            [out, retval] single* CurrentHeight);
+        [id(0x00000001), propput] HRESULT Height([in] single CurrentHeight);
+        [id(0x00000004), propget] HRESULT FitToCurve(
+            [out, retval] VARIANT_BOOL* Flag);
+        [id(0x00000004), propput] HRESULT FitToCurve([in] VARIANT_BOOL Flag);
+        [id(0x00000005), propget] HRESULT IgnorePressure(
+            [out, retval] VARIANT_BOOL* Flag);
+        [id(0x00000005), propput] HRESULT IgnorePressure(
+            [in] VARIANT_BOOL Flag);
+        [id(0x00000006), propget] HRESULT AntiAliased(
+            [out, retval] VARIANT_BOOL* Flag);
+        [id(0x00000006), propput] HRESULT AntiAliased([in] VARIANT_BOOL Flag);
+        [id(0x00000007), propget] HRESULT Transparency(
+            [out, retval] long* CurrentTransparency);
+        [id(0x00000007), propput] HRESULT Transparency(
+            [in] long CurrentTransparency);
+        [id(0x00000008), propget] HRESULT RasterOperation(
+            [out, retval] InkRasterOperation* CurrentRasterOperation);
+        [id(0x00000008), propput] HRESULT RasterOperation(
+            [in] InkRasterOperation CurrentRasterOperation);
+        [id(0x00000009), propget] HRESULT PenTip(
+            [out, retval] InkPenTip* CurrentPenTip);
+        [id(0x00000009), propput] HRESULT PenTip([in] InkPenTip CurrentPenTip);
+        [id(0x0000000b), propget] HRESULT ExtendedProperties(
+            [out, retval] IInkExtendedProperties** Properties);
+        [id(0x0000000a)]          HRESULT Clone(
+            [out, retval] IInkDrawingAttributes** DrawingAttributes);
+    };
+
+cpp_quote("#ifndef _WINGDI_")
+/* already defined in wingdi.h but needed for WIDL */
+    typedef struct tagXFORM {
+        single eM11;
+        single eM12;
+        single eM21;
+        single eM22;
+        single eDx;
+        single eDy;
+    } XFORM;
+cpp_quote("#endif /* _WINGDI_ */")
+
+    [
+        odl,
+        uuid(615F1D43-8703-4565-88E2-8201D2ECD7B7),
+        dual,
+        oleautomation
+    ]
+    interface IInkTransform : IDispatch {
+        [id(0x00000001)] HRESULT Reset();
+        [id(0x00000002)] HRESULT Translate(
+            [in] single HorizontalComponent,
+            [in] single VerticalComponent);
+        [id(0x00000003)] HRESULT Rotate(
+            [in] single Degrees,
+            [in, optional, defaultvalue(0)] single x,
+            [in, optional, defaultvalue(0)] single y);
+        [id(0x00000004)] HRESULT Reflect(
+            [in] VARIANT_BOOL Horizontally,
+            [in] VARIANT_BOOL Vertically);
+        [id(0x00000005)] HRESULT Shear(
+            [in] single HorizontalComponent,
+            [in] single VerticalComponent);
+        [id(0x00000006)] HRESULT ScaleTransform(
+            [in] single HorizontalMultiplier,
+            [in] single VerticalMultiplier);
+        [id(0x0000000d)] HRESULT GetTransform(
+            [out] single* eM11,
+            [out] single* eM12,
+            [out] single* eM21,
+            [out] single* eM22,
+            [out] single* eDx,
+            [out] single* eDy);
+        [id(0x0000000e)] HRESULT SetTransform(
+            [in] single eM11,
+            [in] single eM12,
+            [in] single eM21,
+            [in] single eM22,
+            [in] single eDx,
+            [in] single eDy);
+        [id(0x00000007), propget, hidden] HRESULT eM11(
+            [out, retval] single* Value);
+        [id(0x00000007), propput, hidden] HRESULT eM11([in] single Value);
+        [id(0x00000008), propget, hidden] HRESULT eM12(
+            [out, retval] single* Value);
+        [id(0x00000008), propput, hidden] HRESULT eM12([in] single Value);
+        [id(0x00000009), propget, hidden] HRESULT eM21(
+            [out, retval] single* Value);
+        [id(0x00000009), propput, hidden] HRESULT eM21([in] single Value);
+        [id(0x0000000a), propget, hidden] HRESULT eM22(
+            [out, retval] single* Value);
+        [id(0x0000000a), propput, hidden] HRESULT eM22([in] single Value);
+        [id(0x0000000b), propget, hidden] HRESULT eDx(
+            [out, retval] single* Value);
+        [id(0x0000000b), propput, hidden] HRESULT eDx([in] single Value);
+        [id(0x0000000c), propget, hidden] HRESULT eDy(
+            [out, retval] single* Value);
+        [id(0x0000000c), propput, hidden] HRESULT eDy([in] single Value);
+        [id(0x0000000f), propget, hidden] HRESULT Data(
+            [out, retval] XFORM* XFORM);
+        [id(0x0000000f), propput, hidden] HRESULT Data([in] XFORM XFORM);
+    };
+
+    interface IInkDisp;
+
+    [
+        odl,
+        uuid(9794FF82-6071-4717-8A8B-6AC7C64A686E),
+        dual,
+        oleautomation
+    ]
+    interface IInkRectangle
+    {
+        [id(1), propget] HRESULT Top([out, retval] long* Units);
+        [id(1), propput] HRESULT Top([in] long Units);
+        [id(2), propget] HRESULT Left([out, retval] long* Units);
+        [id(2), propput] HRESULT Left([in] long Units);
+        [id(3), propget] HRESULT Bottom([out, retval] long* Units);
+        [id(3), propput] HRESULT Bottom([in] long Units);
+        [id(4), propget] HRESULT Right([out, retval] long* Units);
+        [id(4), propput] HRESULT Right([in] long Units);
+        [id(7), propget] HRESULT Data([out, retval] RECT* Rect);
+        [id(7), propput] HRESULT Data([in] RECT Rect);
+        [id(5)] HRESULT GetRectangle(
+            [out] long* Top,
+            [out] long* Left,
+            [out] long* Bottom,
+            [out] long* Right);
+        [id(6)] HRESULT SetRectangle(
+            [in] long Top,
+            [in] long Left,
+            [in] long Bottom,
+            [in] long Right);
+    };
+
+    interface IInkStrokes;
+
+    typedef enum {
+        TPMU_Default,
+        TPMU_Inches,
+        TPMU_Centimeters,
+        TPMU_Degrees,
+        TPMU_Radians,
+        TPMU_Seconds,
+        TPMU_Pounds,
+        TPMU_Grams
+    } TabletPropertyMetricUnit;
+
+    [
+        odl,
+        uuid(43242FEA-91D1-4A72-963E-FBB91829CFA2),
+        dual,
+        oleautomation
+    ]
+    interface IInkStrokeDisp : IDispatch {
+        [id(0x00000002), propget]    HRESULT Id([out, retval] long* Id);
+        [id(0x0000000d), propget]    HRESULT BezierPoints(
+            [out, retval] VARIANT* Points);
+        [id(0x00000004), propget]    HRESULT DrawingAttributes(
+            [out, retval] IInkDrawingAttributes** DrawAttrs);
+        [id(0x00000004), propputref] HRESULT DrawingAttributes(
+            [in] IInkDrawingAttributes* DrawAttrs);
+        [id(0x0000000c), propget]    HRESULT Ink([out, retval] IInkDisp** Ink);
+        [id(0x0000000b), propget]    HRESULT ExtendedProperties(
+            [out, retval] IInkExtendedProperties** Properties);
+        [id(0x0000000e), propget]    HRESULT PolylineCusps(
+            [out, retval] VARIANT* Cusps);
+        [id(0x0000000f), propget]    HRESULT BezierCusps(
+            [out, retval] VARIANT* Cusps);
+        [id(0x00000010), propget]    HRESULT SelfIntersections(
+            [out, retval] VARIANT* Intersections);
+        [id(0x00000011), propget]    HRESULT PacketCount(
+            [out, retval] long* plCount);
+        [id(0x00000012), propget]    HRESULT PacketSize(
+            [out, retval] long* plSize);
+        [id(0x00000013), propget]    HRESULT PacketDescription(
+            [out, retval] VARIANT* PacketDescription);
+        [id(0x00000014), propget]    HRESULT Deleted(
+            [out, retval] VARIANT_BOOL* Deleted);
+        [id(0x00000003)]             HRESULT GetBoundingBox(
+            [in, optional, defaultvalue(0)] InkBoundingBoxMode BoundingBoxMode,
+            [out, retval] IInkRectangle** Rectangle);
+        [id(0x00000005)]             HRESULT FindIntersections(
+            [in] IInkStrokes* Strokes,
+            [out, retval] VARIANT* Intersections);
+        [id(0x00000006)]             HRESULT GetRectangleIntersections(
+            [in] IInkRectangle* Rectangle,
+            [out, retval] VARIANT* Intersections);
+        [id(0x00000007)]             HRESULT Clip(
+            [in] IInkRectangle* Rectangle);
+        [id(0x00000008)]             HRESULT HitTestCircle(
+            [in] long x,
+            [in] long y,
+            [in] single radius,
+            [out, retval] VARIANT_BOOL* Intersects);
+        [id(0x00000009)]             HRESULT NearestPoint(
+            [in] long x,
+            [in] long y,
+            [in, out, optional, defaultvalue(0)] single* Distance,
+            [out, retval] single* Point);
+        [id(0x0000000a)]             HRESULT Split(
+            [in] single SplitAt,
+            [out, retval] IInkStrokeDisp** NewStroke);
+        [id(0x00000015)]             HRESULT GetPacketDescriptionPropertyMetrics(
+            [in] BSTR propertyName,
+            [out] long* Minimum,
+            [out] long* Maximum,
+            [out] TabletPropertyMetricUnit* Units,
+            [out] single* Resolution);
+        [id(0x00000016)]             HRESULT GetPoints(
+            [in, optional, defaultvalue(0)] long Index,
+            [in, optional, defaultvalue(-1)] long Count,
+            [out, retval] VARIANT* Points);
+        [id(0x00000017)]             HRESULT SetPoints(
+            [in] VARIANT Points,
+            [in, optional, defaultvalue(0)] long Index,
+            [in, optional, defaultvalue(-1)] long Count,
+            [out, retval] long* NumberOfPointsSet);
+        [id(0x00000018)]             HRESULT GetPacketData(
+            [in, optional, defaultvalue(0)] long Index,
+            [in, optional, defaultvalue(-1)] long Count,
+            [out, retval] VARIANT* PacketData);
+        [id(0x00000019)]             HRESULT GetPacketValuesByProperty(
+            [in] BSTR propertyName,
+            [in, optional, defaultvalue(0)] long Index,
+            [in, optional, defaultvalue(-1)] long Count,
+            [out, retval] VARIANT* PacketValues);
+        [id(0x0000001a)]             HRESULT SetPacketValuesByProperty(
+            [in] BSTR bstrPropertyName,
+            [in] VARIANT PacketValues,
+            [in, optional, defaultvalue(0)] long Index,
+            [in, optional, defaultvalue(-1)] long Count,
+            [out, retval] long* NumberOfPacketsSet);
+        [id(0x0000001b)]             HRESULT GetFlattenedBezierPoints(
+            [in, optional, defaultvalue(0)] long FittingError,
+            [out, retval] VARIANT* FlattenedBezierPoints);
+        [id(0x0000001d)]             HRESULT Transform(
+            [in] IInkTransform* Transform,
+            [in, optional, defaultvalue(0)] VARIANT_BOOL ApplyOnPenWidth);
+        [id(0x0000001c)]             HRESULT ScaleToRectangle(
+            [in] IInkRectangle* Rectangle);
+        [id(0x0000001e)]             HRESULT Move(
+            [in] single HorizontalComponent,
+            [in] single VerticalComponent);
+        [id(0x0000001f)]             HRESULT Rotate(
+            [in] single Degrees,
+            [in, optional, defaultvalue(0)] single x,
+            [in, optional, defaultvalue(0)] single y);
+        [id(0x00000020)]             HRESULT Shear(
+            [in] single HorizontalMultiplier,
+            [in] single VerticalMultiplier);
+        [id(0x00000021)]             HRESULT ScaleTransform(
+            [in] single HorizontalMultiplier,
+            [in] single VerticalMultiplier);
+    };
+
+    interface IInkRecognitionResult;
+
+    [
+        odl,
+        uuid(F1F4C9D8-590A-4963-B3AE-1935671BB6F3),
+        dual,
+        oleautomation
+    ]
+    interface IInkStrokes : IDispatch {
+        [propget]                   HRESULT Count(
+            [out, retval] long *Count);
+        [propget, restricted]       HRESULT _NewEnum(
+            [out, retval] IUnknown **_NewEnum);
+        [propget]                   HRESULT Ink(
+            [out, retval] IInkDisp **Ink);
+        [propget]                   HRESULT RecognitionResult(
+            [out, retval] IInkRecognitionResult **RecognitionResult);
+        HRESULT ToString(
+            [out, retval] BSTR *ToString);
+        HRESULT Item(
+            [in] long Index,
+            [out, retval] IInkStrokeDisp **Stroke);
+        HRESULT Add(
+            [in] IInkStrokeDisp *InkStroke);
+        HRESULT AddStrokes(
+            [in] IInkStrokes *InkStrokes);
+        HRESULT Remove(
+            [in] IInkStrokeDisp *InkStroke);
+        HRESULT RemoveStrokes(
+            [in] IInkStrokes *InkStrokes);
+        HRESULT ModifyDrawingAttributes(
+            [in] IInkDrawingAttributes *DrawAttrs);
+        HRESULT GetBoundingBox(
+            [in] InkBoundingBoxMode BoundingBoxMode,
+            [out, retval] IInkRectangle **BoundingBox);
+        HRESULT Transform(
+            [in] IInkTransform *Transform,
+            [in] VARIANT_BOOL ApplyOnPenWidth);
+        HRESULT ScaleToRectangle(
+            [in] IInkRectangle *Rectangle);
+        HRESULT Move(
+            [in] float HorizontalComponent,
+            [in] float VerticalComponent);
+        HRESULT Rotate(
+            [in] float Degrees,
+            [in] float x,
+            [in] float y);
+        HRESULT Shear(
+            [in] float HorizontalMultiplier,
+            [in] float VerticalMultiplier);
+        HRESULT ScaleTransform(
+            [in] float HorizontalMultiplier,
+            [in] float VerticalMultiplier);
+        HRESULT Clip(
+            [in] IInkRectangle *Rectangle);
+        HRESULT RemoveRecognitionResult();
+    };
+
+    [
+        odl,
+        uuid(7E23A88F-C30E-420f-9BDB-28902543F0C1),
+        dual,
+        oleautomation
+    ]
+    interface IInkCustomStrokes : IDispatch {
+        [propget]               HRESULT Count(
+            [out, retval] long *Count);
+        [propget]               HRESULT _NewEnum(
+            [out, retval] IUnknown **_NewEnum);
+        HRESULT Item(
+            [in] VARIANT Identifier,
+            [out, retval] IInkStrokes **Strokes);
+        HRESULT Add(
+            [in] BSTR Name,
+            [in] IInkStrokes *Strokes);
+        HRESULT Remove(
+            [in] VARIANT Identifier);
+        HRESULT Clear();
+    };
+
+    interface IInkRecognitionAlternate;
+    interface IInkRecognitionAlternates;
+
+    [
+        odl,
+        uuid(3BC129A8-86CD-45ad-BDE8-E0D32D61C16D),
+        dual,
+        oleautomation
+    ]
+    interface IInkRecognitionResult : IDispatch {
+        [propget]               HRESULT TopString(
+            [out, retval] BSTR *TopString);
+        [propget]               HRESULT TopAlternate(
+            [out, retval] IInkRecognitionAlternate **TopAlternate);
+        [propget]               HRESULT TopConfidence(
+            [out, retval] InkRecognitionConfidence *TopConfidence);
+        [propget]               HRESULT Strokes(
+            [out, retval] IInkStrokes **Strokes);
+        HRESULT AlternatesFromSelection(
+            [in] long selectionStart,
+            [in] long selectionLength,
+            [in] long maximumAlternates,
+            [out, retval] IInkRecognitionAlternates **AlternatesFromSelection);
+        HRESULT ModifyTopAlternate(
+            [in] IInkRecognitionAlternate *Alternate);
+        HRESULT SetResultOnStrokes();
+    };
+
+    [
+        odl,
+        uuid(B7E660AD-77E4-429b-ADDA-873780D1FC4A),
+        dual,
+        oleautomation
+    ]
+    interface IInkRecognitionAlternate : IDispatch {
+        [propget]               HRESULT String(
+            [out, retval] BSTR *RecoString);
+        [propget]               HRESULT Confidence(
+            [out, retval] InkRecognitionConfidence *Confidence);
+        [propget]               HRESULT Baseline(
+            [out, retval] VARIANT *Baseline);
+        [propget]               HRESULT Midline(
+            [out, retval] VARIANT *Midline);
+        [propget]               HRESULT Ascender(
+            [out, retval] VARIANT *Ascender);
+        [propget]               HRESULT Descender(
+            [out, retval] VARIANT *Descender);
+        [propget]               HRESULT LineNumber(
+            [out, retval] long *LineNumber);
+        [propget]               HRESULT Strokes(
+            [out, retval] IInkStrokes **Strokes);
+        [propget]               HRESULT LineAlternates(
+            [out, retval] IInkRecognitionAlternates **LineAlternates);
+        [propget]               HRESULT ConfidenceAlternates(
+            [out, retval] IInkRecognitionAlternates **ConfidenceAlternates);
+        HRESULT GetStrokesFromStrokeRanges(
+            [in] IInkStrokes *Stroke,
+            [out, retval] IInkStrokes **GetStrokesFromTextRange);
+        HRESULT GetStrokesFromTextRange(
+            [in, out] long *selectionStart,
+            [in, out] long *selectionLength,
+            [out, retval] IInkStrokes **GetStrokesFromTextRange);
+        HRESULT GetTextRangeFromStrokes(
+            [in] IInkStrokes *Strokes,
+            [in, out] long *selectionStart,
+            [in, out] long *selectionLength);
+        HRESULT AlternatesWithConstantPropertyValues(
+            [in] BSTR PropertyType,
+            [out, retval] IInkRecognitionAlternates **AlternatesWithConstantPropertyValues);
+        HRESULT GetPropertyValue(
+            [in] BSTR PropertyType,
+            [out, retval] VARIANT *PropertyValue);
+    };
+
+    [
+        odl,
+        uuid(286A167F-9F19-4c61-9D53-4F07BE622B84),
+        dual,
+        oleautomation
+    ]
+    interface IInkRecognitionAlternates : IDispatch {
+    [propget]                   HRESULT Count(
+        [out, retval] long *Count);
+    [propget, restricted]       HRESULT _NewEnum(
+        [out, retval] IUnknown **_NewEnum);
+    [propget]                   HRESULT Strokes(
+        [out, retval] IInkStrokes **Strokes);
+    HRESULT Item(
+        [in] long Index,
+        [out, retval] IInkRecognitionAlternate **InkRecoAlternate);
+    };
+
+    [
+        odl,
+        uuid(9D398FA0-C4E2-4fcd-9973-975CAAF47EA6),
+        dual,
+        oleautomation
+    ]
+    interface IInkDisp : IDispatch {
+        [propget]               HRESULT Strokes(
+            [out, retval] IInkStrokes **Strokes);
+        [propget]               HRESULT ExtendedProperties(
+            [out, retval] IInkExtendedProperties **Properties);
+        [propget]               HRESULT Dirty(
+            [out, retval] VARIANT_BOOL *Dirty);
+        [propput]               HRESULT Dirty(
+            [in] VARIANT_BOOL Dirty);
+        [propget]               HRESULT CustomStrokes(
+            [out, retval] IInkCustomStrokes **CustomStrokes);
+        HRESULT GetBoundingBox(
+            [in] InkBoundingBoxMode BoundingBoxMode,
+            [out] IInkRectangle **Rectangle);
+        HRESULT DeleteStrokes(
+            [in, unique] IInkStrokes *Strokes);
+        HRESULT DeleteStroke(
+            [in] IInkStrokeDisp *Stroke);
+        HRESULT ExtractStrokes(
+            [in] IInkStrokes *Strokes,
+            [in] InkExtractFlags ExtractFlags,
+            [out, retval] IInkDisp **ExtractedInk);
+        HRESULT ExtractWithRectangle(
+            [in] IInkRectangle *Rectangle,
+            [in] InkExtractFlags ExtractFlags,
+            [out, retval] IInkDisp **ExtractedInk);
+        HRESULT Clip(
+            [in] IInkRectangle *Rectangle);
+        HRESULT Clone(
+            [out, retval] IInkDisp **NewInk);
+        HRESULT HitTestCircle(
+            [in] long X,
+            [in] long Y,
+            [in] float radius,
+            [out, retval] IInkStrokes **Strokes);
+        HRESULT HitTestWithRectangle(
+            [in] IInkRectangle *SelectionRectangle,
+            [in] float IntersectPercent,
+            [out, retval] IInkStrokes **Strokes);
+        HRESULT HitTestWithLasso(
+            [in] VARIANT Points,
+            [in] float IntersectPercent,
+            [in, out, unique] VARIANT *LassoPoints,
+            [out, retval] IInkStrokes **Strokes);
+        HRESULT NearestPoint(
+            [in] long X,
+            [in] long Y,
+            [in, out] float *PointOnStroke,
+            [in, out] float *DistanceFromPacket,
+            [out, retval] IInkStrokeDisp **Stroke);
+        HRESULT CreateStrokes(
+            [in] VARIANT StrokeIds,
+            [out, retval] IInkStrokes **Strokes);
+        HRESULT AddStrokesAtRectangle(
+            [in] IInkStrokes *SourceStrokes,
+            [in] IInkRectangle *TargetRectangle);
+        HRESULT Save(
+            [in] InkPersistenceFormat PersistenceFormat,
+            [in] InkPersistenceCompressionMode CompressionMode,
+            [out, retval] VARIANT *Data);
+        HRESULT Load(
+            [in] VARIANT Data);
+        HRESULT CreateStroke(
+            [in] VARIANT PacketData,
+            [in] VARIANT PacketDescription,
+            [out, retval] IInkStrokeDisp **Stroke);
+        HRESULT ClipboardCopyWithRectangle(
+            [in] IInkRectangle *Rectangle,
+            [in] InkClipboardFormats ClipboardFormats,
+            [in] InkClipboardModes ClipboardModes,
+            [out, retval] IDataObject **DataObject);
+        HRESULT ClipboardCopy(
+            [in] IInkStrokes *strokes,
+            [in] InkClipboardFormats ClipboardFormats,
+            [in] InkClipboardModes ClipboardModes,
+            [out, retval] IDataObject **DataObject);
+        HRESULT CanPaste(
+            [in] IDataObject *DataObject,
+            [out, retval] VARIANT_BOOL *CanPaste);
+        HRESULT ClipboardPaste(
+            [in] long x,
+            [in] long y,
+            [in, unique] IDataObject *DataObject,
+            [out, retval] IInkStrokes **Strokes);
+    };
+
+    [
+        odl,
+        uuid(E6257A9C-B511-4F4C-A8B0-A7DBC9506B83),
+        dual,
+        oleautomation
+    ]
+    interface IInkRenderer : IDispatch {
+        HRESULT GetViewTransform([in] IInkTransform* ViewTransform);
+        HRESULT SetViewTransform([in] IInkTransform* ViewTransform);
+        HRESULT GetObjectTransform([in] IInkTransform* ObjectTransform);
+        HRESULT SetObjectTransform([in] IInkTransform* ObjectTransform);
+        HRESULT Draw(
+            [in] long hDC,
+            [in] IInkStrokes* Strokes);
+        HRESULT DrawStroke(
+            [in] long hDC,
+            [in] IInkStrokeDisp* Stroke,
+            [in, optional, defaultvalue(0)]
+            IInkDrawingAttributes* DrawingAttributes);
+        HRESULT PixelToInkSpace(
+            [in] long hDC,
+            [in, out] long* x,
+            [in, out] long* y);
+        HRESULT InkSpaceToPixel(
+            [in] long hdcDisplay,
+            [in, out] long* x,
+            [in, out] long* y);
+        HRESULT PixelToInkSpaceFromPoints(
+            [in] long hDC,
+            [in, out] VARIANT* Points);
+        HRESULT InkSpaceToPixelFromPoints(
+            [in] long hDC,
+            [in, out] VARIANT* Points);
+        HRESULT Measure(
+            [in] IInkStrokes* Strokes,
+            [out, retval] IInkRectangle** Rectangle);
+        HRESULT MeasureStroke(
+            [in] IInkStrokeDisp* Stroke,
+            [in, optional, defaultvalue(0)] IInkDrawingAttributes* DrawingAttributes,
+            [out, retval] IInkRectangle** Rectangle);
+        HRESULT Move(
+            [in] single HorizontalComponent,
+            [in] single VerticalComponent);
+        HRESULT Rotate(
+            [in] single Degrees,
+            [in, optional, defaultvalue(0)] single x,
+            [in, optional, defaultvalue(0)] single y);
+        HRESULT ScaleTransform(
+            [in] single HorizontalMultiplier,
+            [in] single VerticalMultiplier,
+            [in, optional, defaultvalue(-1)] VARIANT_BOOL ApplyOnPenWidth);
+    };
+
+    typedef enum {
+        ICM_InkOnly,
+        ICM_GestureOnly,
+        ICM_InkAndGesture
+    } InkCollectionMode;
+
+    typedef enum {
+        IMP_Default,
+        IMP_Arrow,
+        IMP_Crosshair,
+        IMP_Ibeam,
+        IMP_SizeNESW,
+        IMP_SizeNS,
+        IMP_SizeNWSE,
+        IMP_SizeWE,
+        IMP_UpArrow,
+        IMP_Hourglass,
+        IMP_NoDrop,
+        IMP_ArrowHourglass,
+        IMP_ArrowQuestion,
+        IMP_SizeAll,
+        IMP_Hand,
+        IMP_Custom = 99
+    } InkMousePointer;
+
+    typedef enum {
+        THWC_Integrated = 1,
+        THWC_CursorMustTouch = 2,
+        THWC_HardProximity = 4,
+        THWC_CursorsHavePhysicalIds = 8
+    } TabletHardwareCapabilities;
+
+    [
+        odl,
+        uuid(2DE25EAA-6EF8-42D5-AEE9-185BC81B912D),
+        dual,
+        oleautomation
+    ]
+    interface IInkTablet : IDispatch {
+        [propget] HRESULT Name([out, retval] BSTR* Name);
+        [propget] HRESULT PlugAndPlayId([out, retval] BSTR* Id);
+        [propget] HRESULT MaximumInputRectangle([out, retval] IInkRectangle** Rectangle);
+        [propget] HRESULT HardwareCapabilities(
+            [out, retval] TabletHardwareCapabilities* Capabilities);
+        HRESULT IsPacketPropertySupported(
+            [in] BSTR packetPropertyName,
+            [out, retval] VARIANT_BOOL* Supported);
+        HRESULT GetPropertyMetrics(
+            [in] BSTR propertyName,
+            [out] long* Minimum,
+            [out] long* Maximum,
+            [out] TabletPropertyMetricUnit* Units,
+            [out] single* Resolution);
+    };
+
+    typedef enum {
+        ICBS_Unavailable,
+        ICBS_Up,
+        ICBS_Down
+    } InkCursorButtonState;
+
+    [
+        odl,
+        uuid(85EF9417-1D59-49B2-A13C-702C85430894),
+        dual,
+        oleautomation
+    ]
+    interface IInkCursorButton : IDispatch {
+        [propget] HRESULT Name([out, retval] BSTR* Name);
+        [propget] HRESULT Id([out, retval] BSTR* Id);
+        [propget] HRESULT State([out, retval] InkCursorButtonState* CurrentState);
+    };
+
+    [
+        odl,
+        uuid(3671CC40-B624-4671-9FA0-DB119D952D54),
+        dual,
+        oleautomation
+    ]
+    interface IInkCursorButtons : IDispatch {
+        [propget] HRESULT Count([out, retval] long* Count);
+        [propget] HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
+        HRESULT Item(
+            [in] VARIANT Identifier,
+            [out, retval] IInkCursorButton** Button);
+    };
+
+    [
+        odl,
+        uuid(AD30C630-40C5-4350-8405-9C71012FC558),
+        dual,
+        oleautomation
+    ]
+    interface IInkCursor : IDispatch {
+        [id(0x00000000), propget]    HRESULT Name([out, retval] BSTR* Name);
+        [id(0x00000001), propget]    HRESULT Id([out, retval] long* Id);
+        [id(0x00000004), propget]    HRESULT Inverted(
+            [out, retval] VARIANT_BOOL* Status);
+        [id(0x00000002), propget]    HRESULT DrawingAttributes(
+            [out, retval] IInkDrawingAttributes** Attributes);
+        [id(0x00000002), propputref] HRESULT DrawingAttributes(
+            [in] IInkDrawingAttributes* Attributes);
+        [id(0x00000005), propget]    HRESULT Tablet(
+            [out, retval] IInkTablet** Tablet);
+        [id(0x00000003), propget]    HRESULT Buttons(
+            [out, retval] IInkCursorButtons** Buttons);
+    };
+
+    [
+        odl,
+        uuid(A248C1AC-C698-4E06-9E5C-D57F77C7E647),
+        dual,
+        oleautomation
+    ]
+    interface IInkCursors : IDispatch {
+        [propget] HRESULT Count([out, retval] long* Count);
+        [propget] HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
+        HRESULT Item(
+            [in] long Index,
+            [out, retval] IInkCursor** Cursor);
+    };
+
+    typedef enum {
+        IAG_AllGestures = 0,
+        IAG_NoGesture = 61440,
+        IAG_Scratchout = 61441,
+        IAG_Triangle = 61442,
+        IAG_Square = 61443,
+        IAG_Star = 61444,
+        IAG_Check = 61445,
+        IAG_Curlicue = 61456,
+        IAG_DoubleCurlicue = 61457,
+        IAG_Circle = 61472,
+        IAG_DoubleCircle = 61473,
+        IAG_SemiCircleLeft = 61480,
+        IAG_SemiCircleRight = 61481,
+        IAG_ChevronUp = 61488,
+        IAG_ChevronDown = 61489,
+        IAG_ChevronLeft = 61490,
+        IAG_ChevronRight = 61491,
+        IAG_ArrowUp = 61496,
+        IAG_ArrowDown = 61497,
+        IAG_ArrowLeft = 61498,
+        IAG_ArrowRight = 61499,
+        IAG_Up = 61528,
+        IAG_Down = 61529,
+        IAG_Left = 61530,
+        IAG_Right = 61531,
+        IAG_UpDown = 61536,
+        IAG_DownUp = 61537,
+        IAG_LeftRight = 61538,
+        IAG_RightLeft = 61539,
+        IAG_UpLeftLong = 61540,
+        IAG_UpRightLong = 61541,
+        IAG_DownLeftLong = 61542,
+        IAG_DownRightLong = 61543,
+        IAG_UpLeft = 61544,
+        IAG_UpRight = 61545,
+        IAG_DownLeft = 61546,
+        IAG_DownRight = 61547,
+        IAG_LeftUp = 61548,
+        IAG_LeftDown = 61549,
+        IAG_RightUp = 61550,
+        IAG_RightDown = 61551,
+        IAG_Exclamation = 61604,
+        IAG_Tap = 61680,
+        IAG_DoubleTap = 61681
+    } InkApplicationGesture;
+
+    typedef enum {
+        ICEI_DefaultEvents = -1,
+        ICEI_CursorDown = 0,
+        ICEI_Stroke,
+        ICEI_NewPackets,
+        ICEI_NewInAirPackets,
+        ICEI_CursorButtonDown,
+        ICEI_CursorButtonUp,
+        ICEI_CursorInRange,
+        ICEI_CursorOutOfRange,
+        ICEI_SystemGesture,
+        ICEI_TabletAdded,
+        ICEI_TabletRemoved,
+        ICEI_MouseDown,
+        ICEI_MouseMove,
+        ICEI_MouseUp,
+        ICEI_MouseWheel,
+        ICEI_DblClick,
+        ICEI_AllEvents
+    } InkCollectorEventInterest;
+
+    [
+        odl,
+        uuid(F0F060B5-8B1F-4A7C-89EC-880692588A4F),
+        dual,
+        oleautomation
+    ]
+    interface IInkCollector : IDispatch {
+        [id(0x00000002), propget]    HRESULT hWnd(
+            [out, retval] long* CurrentWindow);
+        [id(0x00000002), propput]    HRESULT hWnd([in] long CurrentWindow);
+        [id(0x00000001), propget]    HRESULT Enabled(
+            [out, retval] VARIANT_BOOL* Collecting);
+        [id(0x00000001), propput]    HRESULT Enabled(
+            [in] VARIANT_BOOL Collecting);
+        [id(0x00000005), propget]    HRESULT DefaultDrawingAttributes(
+            [out, retval] IInkDrawingAttributes** CurrentAttributes);
+        [id(0x00000005), propputref] HRESULT DefaultDrawingAttributes(
+            [in] IInkDrawingAttributes* CurrentAttributes);
+        [id(0x00000006), propget]    HRESULT Renderer(
+            [out, retval] IInkRenderer** CurrentInkRenderer);
+        [id(0x00000006), propputref] HRESULT Renderer(
+            [in] IInkRenderer* CurrentInkRenderer);
+        [id(0x00000007), propget]    HRESULT Ink([out, retval] IInkDisp** Ink);
+        [id(0x00000007), propputref] HRESULT Ink([in] IInkDisp* Ink);
+        [id(0x00000008), propget]    HRESULT AutoRedraw(
+            [out, retval] VARIANT_BOOL* AutoRedraw);
+        [id(0x00000008), propput]    HRESULT AutoRedraw(
+            [in] VARIANT_BOOL AutoRedraw);
+        [id(0x00000009), propget]    HRESULT CollectingInk(
+            [out, retval] VARIANT_BOOL* Collecting);
+        [id(0x0000001c), propget]    HRESULT CollectionMode(
+            [out, retval] InkCollectionMode* Mode);
+        [id(0x0000001c), propput]    HRESULT CollectionMode(
+            [in] InkCollectionMode Mode);
+        [id(0x0000001f), propget]    HRESULT DynamicRendering(
+            [out, retval] VARIANT_BOOL* Enabled);
+        [id(0x0000001f), propput]    HRESULT DynamicRendering(
+            [in] VARIANT_BOOL Enabled);
+        [id(0x00000020), propget]    HRESULT DesiredPacketDescription(
+            [out, retval] VARIANT* PacketGuids);
+        [id(0x00000020), propput]    HRESULT DesiredPacketDescription(
+            [in] VARIANT PacketGuids);
+        [id(0x00000023), propget]    HRESULT MouseIcon(
+            [out, retval] IPictureDisp** MouseIcon);
+        [id(0x00000023), propput]    HRESULT MouseIcon(
+            [in] IPictureDisp* MouseIcon);
+        [id(0x00000023), propputref] HRESULT MouseIcon(
+            [in] IPictureDisp* MouseIcon);
+        [id(0x00000024), propget]    HRESULT MousePointer(
+            [out, retval] InkMousePointer* MousePointer);
+        [id(0x00000024), propput]    HRESULT MousePointer(
+            [in] InkMousePointer MousePointer);
+        [id(0x00000014), propget]    HRESULT Cursors(
+            [out, retval] IInkCursors** Cursors);
+        [id(0x00000015), propget]    HRESULT MarginX(
+            [out, retval] long* MarginX);
+        [id(0x00000015), propput]    HRESULT MarginX([in] long MarginX);
+        [id(0x00000016), propget]    HRESULT MarginY(
+            [out, retval] long* MarginY);
+        [id(0x00000016), propput]    HRESULT MarginY([in] long MarginY);
+        [id(0x00000019), propget]    HRESULT Tablet(
+            [out, retval] IInkTablet** SingleTablet);
+        [id(0x00000026), propget]    HRESULT SupportHighContrastInk(
+            [out, retval] VARIANT_BOOL* Support);
+        [id(0x00000026), propput]    HRESULT SupportHighContrastInk(
+            [in] VARIANT_BOOL Support);
+        [id(0x0000001d)]             HRESULT SetGestureStatus(
+            [in] InkApplicationGesture Gesture,
+            [in] VARIANT_BOOL Listen);
+        [id(0x0000001e)]             HRESULT GetGestureStatus(
+            [in] InkApplicationGesture Gesture,
+            [out, retval] VARIANT_BOOL* Listening);
+        [id(0x00000018)]             HRESULT GetWindowInputRectangle(
+            [in, out] IInkRectangle** WindowInputRectangle);
+        [id(0x00000017)]             HRESULT SetWindowInputRectangle(
+            [in] IInkRectangle* WindowInputRectangle);
+        [id(0x0000001a)]             HRESULT SetAllTabletsMode(
+            [in, optional, defaultvalue(-1)] VARIANT_BOOL UseMouseForInput);
+        [id(0x0000001b)]             HRESULT SetSingleTabletIntegratedMode(
+            [in] IInkTablet* Tablet);
+        [id(0x0000000b)]             HRESULT GetEventInterest(
+            [in] InkCollectorEventInterest EventId,
+            [out, retval] VARIANT_BOOL* Listen);
+        [id(0x0000000a)]             HRESULT SetEventInterest(
+            [in] InkCollectorEventInterest EventId,
+            [in] VARIANT_BOOL Listen);
+    };
+};
index f2841a5..444ebe8 100644 (file)
@@ -255,6 +255,8 @@ typedef enum _SCHEMATYPEVARIETY
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF80-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMNode : IDispatch
@@ -392,6 +394,8 @@ interface IXMLDOMNode : IDispatch
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF81-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMDocument : IXMLDOMNode
@@ -528,6 +532,8 @@ interface IXMLDOMDocument : IXMLDOMNode
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (373984c8-b845-449b-91e7-45ac83036ade)
 ]
 interface IXMLDOMSchemaCollection : IDispatch
@@ -564,6 +570,8 @@ interface IXMLDOMSchemaCollection : IDispatch
 [
     local,
     object,
+    dual,
+    oleautomation,
     uuid(50ea08b0-dd1b-4664-9a50-c2f40f4bd79a),
 ]
 interface IXMLDOMSchemaCollection2 : IXMLDOMSchemaCollection
@@ -593,6 +601,8 @@ interface IXMLDOMSchemaCollection2 : IXMLDOMSchemaCollection
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF95-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMDocument2 : IXMLDOMDocument
@@ -624,6 +634,8 @@ interface IXMLDOMDocument2 : IXMLDOMDocument
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF82-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMNodeList : IDispatch
@@ -648,6 +660,8 @@ interface IXMLDOMNodeList : IDispatch
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (AA634FC7-5888-44a7-A257-3A47150D3A0E)
 ]
 interface IXMLDOMSelection : IXMLDOMNodeList
@@ -698,6 +712,8 @@ interface IXMLDOMSelection : IXMLDOMNodeList
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF83-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMNamedNodeMap : IDispatch
@@ -749,6 +765,8 @@ interface IXMLDOMNamedNodeMap : IDispatch
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (3efaa413-272f-11d2-836f-0000f87a7782)
 ]
 interface IXMLDOMDocumentFragment : IXMLDOMNode 
@@ -758,6 +776,8 @@ interface IXMLDOMDocumentFragment : IXMLDOMNode
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF84-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMCharacterData : IXMLDOMNode 
@@ -801,6 +821,8 @@ interface IXMLDOMCharacterData : IXMLDOMNode
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF85-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMAttribute : IXMLDOMNode 
@@ -818,6 +840,8 @@ interface IXMLDOMAttribute : IXMLDOMNode
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF86-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMElement : IXMLDOMNode 
@@ -866,6 +890,8 @@ interface IXMLDOMElement : IXMLDOMNode
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF87-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMText : IXMLDOMCharacterData 
@@ -879,6 +905,8 @@ interface IXMLDOMText : IXMLDOMCharacterData
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF88-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMComment : IXMLDOMCharacterData 
@@ -888,6 +916,8 @@ interface IXMLDOMComment : IXMLDOMCharacterData
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF89-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMProcessingInstruction : IXMLDOMNode 
@@ -905,6 +935,8 @@ interface IXMLDOMProcessingInstruction : IXMLDOMNode
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF8A-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMCDATASection : IXMLDOMText 
@@ -914,6 +946,8 @@ interface IXMLDOMCDATASection : IXMLDOMText
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF8B-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMDocumentType : IXMLDOMNode 
@@ -931,6 +965,8 @@ interface IXMLDOMDocumentType : IXMLDOMNode
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF8C-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMNotation : IXMLDOMNode 
@@ -945,6 +981,8 @@ interface IXMLDOMNotation : IXMLDOMNode
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF8D-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMEntity : IXMLDOMNode 
@@ -962,6 +1000,8 @@ interface IXMLDOMEntity : IXMLDOMNode
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF8E-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMEntityReference : IXMLDOMNode 
@@ -971,6 +1011,8 @@ interface IXMLDOMEntityReference : IXMLDOMNode
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF8F-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXMLDOMImplementation : IDispatch
@@ -985,6 +1027,8 @@ interface IXMLDOMImplementation : IDispatch
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (3efaa425-272f-11d2-836f-0000f87a7782)
 ]
 interface IXTLRuntime : IXMLDOMNode
@@ -1060,6 +1104,8 @@ dispinterface XMLDOMDocumentEvents
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF92-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXSLProcessor : IDispatch
@@ -1118,6 +1164,8 @@ interface IXSLProcessor : IDispatch
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (2933BF93-7B36-11d2-B20E-00C04F983E60)
 ]
 interface IXSLTemplate : IDispatch
@@ -1190,6 +1238,8 @@ interface IXMLHTTPRequest : IDispatch
 [
 local,
 object,
+dual,
+oleautomation,
 uuid (3efaa426-272f-11d2-836f-0000f87a7782)
 ]
 interface IXMLDOMParseError : IDispatch
@@ -1721,6 +1771,7 @@ interface ISAXXMLReader : IUnknown
 [
     object,
     dual,
+    oleautomation,
     uuid(10dc0586-132b-4cac-8bb3-db00ac8b7ee0)
 ]
 interface IVBSAXAttributes : IDispatch
@@ -1769,6 +1820,7 @@ interface IVBSAXAttributes : IDispatch
 [
     object,
     dual,
+    oleautomation,
     uuid(2ed7290a-4dd5-4b46-bb26-4e4155e77faa)
 ]
 interface IVBSAXContentHandler : IDispatch
@@ -1815,6 +1867,7 @@ interface IVBSAXContentHandler : IDispatch
 [
     object,
     dual,
+    oleautomation,
     uuid(e8917260-7579-4be1-b5dd-7afbfa6f077b)
 ]
 interface IVBSAXDeclHandler : IDispatch
@@ -1847,6 +1900,7 @@ interface IVBSAXDeclHandler : IDispatch
 [
     object,
     dual,
+    oleautomation,
     uuid(24fb3297-302d-4620-ba39-3a732d850558)
 ]
 interface IVBSAXDTDHandler : IDispatch
@@ -1868,6 +1922,7 @@ interface IVBSAXDTDHandler : IDispatch
 [
     object,
     dual,
+    oleautomation,
     uuid(0c05d096-f45b-4aca-ad1a-aa0bc25518dc)
 ]
 interface IVBSAXEntityResolver : IDispatch
@@ -1882,6 +1937,7 @@ interface IVBSAXEntityResolver : IDispatch
 [
     object,
     dual,
+    oleautomation,
     uuid(d963d3fe-173c-4862-9095-b92f66995f52)
 ]
 interface IVBSAXErrorHandler : IDispatch
@@ -1908,6 +1964,7 @@ interface IVBSAXErrorHandler : IDispatch
 [
     object,
     dual,
+    oleautomation,
     uuid(032aac35-8c0e-4d9d-979f-e3b702935576)
 ]
 interface IVBSAXLexicalHandler : IDispatch
@@ -1936,6 +1993,8 @@ interface IVBSAXLexicalHandler : IDispatch
 
 [
     object,
+    dual,
+    oleautomation,
     uuid(796e7ac5-5aa2-4eff-acad-3faaf01a3288)
 ]
 interface IVBSAXLocator : IDispatch
@@ -1956,6 +2015,7 @@ interface IVBSAXLocator : IDispatch
 [
     object,
     dual,
+    oleautomation,
     uuid(1299eb1b-5b88-433e-82de-82ca75ad4e04)
 ]
 interface IVBSAXXMLFilter : IDispatch
@@ -1969,6 +2029,7 @@ interface IVBSAXXMLFilter : IDispatch
 
 [
     dual,
+    oleautomation,
     object,
     uuid (8c033caa-6cd6-4f73-b728-4531af74945f)
 ]
@@ -2028,6 +2089,7 @@ interface IVBSAXXMLReader : IDispatch
 [
     object,
     dual,
+    oleautomation,
     uuid(f10d27cc-3ec0-415c-8ed8-77ab1c5e7262)
 ]
 interface IMXAttributes : IDispatch
@@ -2084,6 +2146,7 @@ interface IMXAttributes : IDispatch
 [
     object,
     dual,
+    oleautomation,
     uuid(808f4e35-8d5a-4fbe-8466-33a41279ed30)
 ]
 interface IMXReaderControl : IDispatch
@@ -2101,6 +2164,7 @@ interface IMXReaderControl : IDispatch
 [
     object,
     dual,
+    oleautomation,
     uuid(4d7ff4ba-1565-4ea8-94e1-6e724a46f98d)
 ]
 interface IMXWriter :  IDispatch
@@ -2153,6 +2217,7 @@ interface IMXWriter :  IDispatch
     local,
     object,
     uuid(50ea08b1-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual
 ]
 interface ISchemaStringCollection : IDispatch
@@ -2175,6 +2240,7 @@ interface ISchemaStringCollection : IDispatch
     local,
     object,
     uuid(50ea08b2-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual
 ]
 interface ISchemaItemCollection : IDispatch
@@ -2208,6 +2274,7 @@ interface ISchemaItemCollection : IDispatch
     local,
     object,
     uuid(50ea08b3-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual
 ]
 interface ISchemaItem : IDispatch
@@ -2246,6 +2313,7 @@ interface ISchemaItem : IDispatch
     local,
     object,
     uuid(50ea08b4-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual
 ]
 interface ISchema : ISchemaItem
@@ -2291,6 +2359,7 @@ interface ISchema : ISchemaItem
     local,
     object,
     uuid(50ea08b5-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual
 ]
 interface ISchemaParticle : ISchemaItem
@@ -2307,6 +2376,7 @@ interface ISchemaParticle : ISchemaItem
 [
     object,
     uuid(50ea08b6-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual,
 ]
 interface ISchemaAttribute : ISchemaItem
@@ -2340,6 +2410,7 @@ interface ISchemaAttribute : ISchemaItem
     local,
     object,
     uuid(50ea08b7-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual
 ]
 interface ISchemaElement : ISchemaParticle
@@ -2393,6 +2464,7 @@ interface ISchemaElement : ISchemaParticle
     local,
     object,
     uuid(50ea08b8-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual
 ]
 interface ISchemaType : ISchemaItem
@@ -2471,6 +2543,7 @@ interface ISchemaType : ISchemaItem
     local,
     object,
     uuid(50ea08b9-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual,
 ]
 interface ISchemaComplexType : ISchemaType
@@ -2504,6 +2577,7 @@ interface ISchemaComplexType : ISchemaType
     local,
     object,
     uuid(50ea08ba-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual,
 ]
 interface ISchemaAttributeGroup : ISchemaItem
@@ -2521,6 +2595,7 @@ interface ISchemaAttributeGroup : ISchemaItem
     local,
     object,
     uuid(50ea08bb-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual,
 ]
 interface ISchemaModelGroup : ISchemaParticle
@@ -2534,6 +2609,7 @@ interface ISchemaModelGroup : ISchemaParticle
     local,
     object,
     uuid(50ea08bc-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual
 ]
 interface ISchemaAny : ISchemaParticle
@@ -2551,6 +2627,7 @@ interface ISchemaAny : ISchemaParticle
     local,
     object,
     uuid(50ea08bd-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual
 ]
 interface ISchemaIdentityConstraint : ISchemaItem
@@ -2572,6 +2649,7 @@ interface ISchemaIdentityConstraint : ISchemaItem
     local,
     object,
     uuid(50ea08be-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
     dual
 ]
 interface ISchemaNotation : ISchemaItem
diff --git a/reactos/include/psdk/netcon.idl b/reactos/include/psdk/netcon.idl
new file mode 100644 (file)
index 0000000..eecc1d2
--- /dev/null
@@ -0,0 +1,412 @@
+/*
+ * Copyright 2009 Jacek Caban for CodeWeavers
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef DO_NO_IMPORTS
+import "oaidl.idl";
+import "unknwn.idl";
+import "wtypes.idl";
+/* import "prsht.idl"; */
+#endif
+
+cpp_quote("DEFINE_GUID(CLSID_NetSharingManager,0x5c63c1ad,0x3956,0x4ff8,0x84,0x86,0x40,0x03,0x47,0x58,0x31,0x5b);")
+
+[
+    object,
+    uuid(c08956a1-1cd3-11d1-b1c5-00805fc1270e),
+    pointer_default(unique)
+]
+interface INetConnection : IUnknown
+{
+    typedef enum tagNETCON_CHARACTERISTIC_FLAGS
+    {
+        NCCF_NONE               = 0x0000,
+        NCCF_ALL_USERS          = 0x0001,
+        NCCF_ALLOW_DUPLICATION  = 0x0002,
+        NCCF_ALLOW_REMOVAL      = 0x0004,
+        NCCF_ALLOW_RENAME       = 0x0008,
+        NCCF_INCOMING_ONLY      = 0x0020,
+        NCCF_OUTGOING_ONLY      = 0x0040,
+        NCCF_BRANDED            = 0x0080,
+        NCCF_SHARED             = 0x0100,
+        NCCF_BRIDGED            = 0x0200,
+        NCCF_FIREWALLED         = 0x0400,
+        NCCF_DEFAULT            = 0x0800,
+        NCCF_HOMENET_CAPABLE    = 0x1000,
+        NCCF_SHARED_PRIVATE     = 0x2000,
+        NCCF_QUARANTINED        = 0x4000,
+        NCCF_RESERVED           = 0x8000,
+        NCCF_BLUETOOTH_MASK  = 0x000F0000,
+        NCCF_LAN_MASK        = 0x00F00000
+    } NETCON_CHARACTERISTIC_FLAGS;
+
+    typedef enum tagNETCON_STATUS
+    {
+        NCS_DISCONNECTED,
+        NCS_CONNECTING,
+        NCS_CONNECTED,
+        NCS_DISCONNECTING,
+        NCS_HARDWARE_NOT_PRESENT,
+        NCS_HARDWARE_DISABLED,
+        NCS_HARDWARE_MALFUNCTION,
+        NCS_MEDIA_DISCONNECTED,
+        NCS_AUTHENTICATING,
+        NCS_AUTHENTICATION_SUCCEEDED,
+        NCS_AUTHENTICATION_FAILED,
+        NCS_INVALID_ADDRESS,
+        NCS_CREDENTIALS_REQUIRED
+    } NETCON_STATUS;
+
+    typedef enum tagNETCON_TYPE
+    {
+        NCT_DIRECT_CONNECT,
+        NCT_INBOUND,
+        NCT_INTERNET,
+        NCT_LAN,
+        NCT_PHONE,
+        NCT_TUNNEL,
+        NCT_BRIDGE
+    } NETCON_TYPE;
+
+    typedef enum tagNETCON_MEDIATYPE
+    {
+        NCM_NONE,
+        NCM_DIRECT,
+        NCM_ISDN,
+        NCM_LAN,
+        NCM_PHONE,
+        NCM_TUNNEL,
+        NCM_PPPOE,
+        NCM_BRIDGE,
+        NCM_SHAREDACCESSHOST_LAN,
+        NCM_SHAREDACCESSHOST_RAS
+    } NETCON_MEDIATYPE;
+
+    typedef struct tagNETCON_PROPERTIES
+    {
+        GUID              guidId;
+        [string] LPWSTR   pszwName;
+        [string] LPWSTR   pszwDeviceName;
+        NETCON_STATUS     Status;
+        NETCON_MEDIATYPE  MediaType;
+        DWORD             dwCharacter;
+        CLSID             clsidThisObject;
+        CLSID             clsidUiObject;
+    } NETCON_PROPERTIES;
+
+    HRESULT Connect();
+
+    HRESULT Disconnect();
+
+    HRESULT Delete();
+
+    HRESULT Duplicate(
+            [in, string] LPCWSTR pszwDuplicateName,
+            [out]        INetConnection **ppCon);
+
+    HRESULT GetProperties([out] NETCON_PROPERTIES **ppProps);
+
+    HRESULT GetUiObjectClassId([out, ref] CLSID *pclsid);
+
+    HRESULT Rename([in, string] LPCWSTR pszwNewName);
+}
+
+[
+    object,
+    uuid(24b7e9b5-e38f-4685-851b-00892cf5f940),
+    oleautomation,
+    dual,
+    pointer_default(unique)
+]
+interface INetSharingPortMappingProps : IDispatch
+{
+    [propget, id(1)]
+    HRESULT Name([out, retval] BSTR *pbstrName);
+
+    [propget, id(2)]
+    HRESULT IPProtocol([out, retval] UCHAR *pucIPProt);
+
+    [propget, id(3)]
+    HRESULT ExternalPort([out, retval] long *pusPort);
+
+    [propget, id(4)]
+    HRESULT InternalPort([out, retval] long *pusPort);
+
+    [propget, id(5)]
+    HRESULT Options([out, retval] long *pdwOptions);
+
+    [propget, id(6)]
+    HRESULT TargetName([out, retval] BSTR *pbstrTargetName);
+
+    [propget, id(7)]
+    HRESULT TargetIPAddress([out, retval] BSTR *pbstrTargetIPAddress);
+
+    [propget, id(8)]
+    HRESULT Enabled([out, retval] VARIANT_BOOL *pbool);
+}
+
+[
+    object,
+    uuid(c08956b1-1cd3-11d1-b1c5-00805fc1270e),
+    oleautomation,
+    dual,
+    pointer_default(unique)
+]
+interface INetSharingPortMapping : IDispatch
+{
+    [id(1)]
+    HRESULT Disable();
+
+    [id(2)]
+    HRESULT Enable();
+
+    [propget, id(3)]
+    HRESULT Properties([out, retval] INetSharingPortMappingProps **ppNSPMP);
+
+    [id(4)]
+    HRESULT Delete();
+};
+[
+    object,
+    uuid(02e4a2de-da20-4e34-89c8-ac22275a010b),
+    oleautomation,
+    dual,
+    pointer_default(unique)
+]
+interface INetSharingPortMappingCollection : IDispatch
+{
+    [propget, id(DISPID_NEWENUM), restricted]
+    HRESULT _NewEnum([out, retval] IUnknown **pVal);
+
+    [propget, id(1)]
+    HRESULT Count([out, retval] long *pVal);
+}
+
+[
+    object,
+    uuid(c08956b6-1cd3-11d1-b1c5-00805fc1270e),
+    oleautomation,
+    dual,
+    pointer_default(unique)
+]
+interface INetSharingConfiguration : IDispatch
+{
+    typedef enum tagSHARINGCONNECTIONTYPE {
+        ICSSHARINGTYPE_PUBLIC,
+        ICSSHARINGTYPE_PRIVATE
+    } SHARINGCONNECTIONTYPE, *LPSHARINGCONNECTIONTYPE;
+
+    typedef enum tagSHARINGCONNECTION_ENUM_FLAGS {
+            ICSSC_DEFAULT,
+            ICSSC_ENABLED
+    } SHARINGCONNECTION_ENUM_FLAGS;
+
+    typedef enum tagICS_TARGETTYPE {
+            ICSTT_NAME,
+            ICSTT_IPADDRESS
+    }ICS_TARGETTYPE;
+
+    [propget, id(1)]
+    HRESULT SharingEnabled([out, retval] VARIANT_BOOL *pbEnabled);
+
+    [propget, id(2)]
+    HRESULT SharingConnectionType([out, retval] SHARINGCONNECTIONTYPE *pType);
+
+    [id(3)]
+    HRESULT DisableSharing();
+
+    [id(4)]
+    HRESULT EnableSharing([in] SHARINGCONNECTIONTYPE Type);
+
+    [propget, id(5)]
+    HRESULT InternetFirewallEnabled([out, retval] VARIANT_BOOL *pbEnabled);
+
+    [id(6)]
+    HRESULT DisableInternetFirewall();
+
+    [id(7)]
+    HRESULT EnableInternetFirewall();
+
+    [propget, id(8)]
+    HRESULT EnumPortMappings(
+        [in] SHARINGCONNECTION_ENUM_FLAGS Flags,
+        [out, retval] INetSharingPortMappingCollection **ppColl);
+
+    [id(9)]
+    HRESULT AddPortMapping(
+            [in] BSTR bstrName,
+            [in] UCHAR ucIPProtocol,
+            [in] USHORT usExternalPort,
+            [in] USHORT usInternalPort,
+            [in] DWORD dwOptions,
+            [in] BSTR bstrTargetNameOrIPAddress,
+            [in] ICS_TARGETTYPE eTargetType,
+            [out, retval] INetSharingPortMapping **ppMapping );
+
+    [id(10)]
+    HRESULT RemovePortMapping([in] INetSharingPortMapping *pMapping);
+}
+
+[
+    object,
+    uuid(c08956b4-1cd3-11d1-b1c5-00805fc1270e),
+    pointer_default(unique)
+]
+interface IEnumNetSharingPublicConnection : IUnknown
+{
+    HRESULT Next(
+            [in] ULONG celt,
+            [out, size_is(celt), length_is(*pceltFetched)] VARIANT *rgVar,
+            [out] ULONG *pceltFetched);
+
+    HRESULT Skip([in] ULONG celt);
+
+    HRESULT Reset();
+
+    HRESULT Clone([out] IEnumNetSharingPublicConnection **ppenum);
+}
+
+[
+    object,
+    uuid(c08956b5-1cd3-11d1-b1c5-00805fc1270e),
+    pointer_default(unique)
+]
+interface IEnumNetSharingPrivateConnection : IUnknown
+{
+    HRESULT Next(
+            [in] ULONG celt,
+            [out, size_is(celt), length_is(*pCeltFetched)] VARIANT *rgVar,
+            [out] ULONG *pCeltFetched);
+
+    HRESULT Skip([in] ULONG celt);
+
+    HRESULT Reset();
+
+    HRESULT Clone([out] IEnumNetSharingPrivateConnection **ppenum);
+}
+
+[
+    object,
+    uuid(f4277c95-ce5b-463d-8167-5662d9bcaa72),
+    oleautomation,
+    dual,
+    pointer_default(unique)
+]
+interface INetConnectionProps : IDispatch
+{
+    [propget, id(1)]
+    HRESULT Guid([out, retval] BSTR *pbstrGuid);
+
+    [propget, id(2)]
+    HRESULT Name([out, retval] BSTR *pbstrName);
+
+    [propget, id(3)]
+    HRESULT DeviceName([out, retval] BSTR *pbstrDeviceName);
+
+    [propget, id(4)]
+    HRESULT Status([out, retval] NETCON_STATUS *pStatus);
+
+    [propget, id(5)]
+    HRESULT MediaType([out, retval] NETCON_MEDIATYPE *pMediaType);
+
+    [propget, id(6)]
+    HRESULT Characteristics([out, retval] DWORD *pdwFlags);
+}
+
+[
+    object,
+    uuid(7d7a6355-f372-4971-a149-bfc927be762a),
+    oleautomation,
+    dual,
+    pointer_default(unique)
+]
+interface INetSharingPublicConnectionCollection : IDispatch
+{
+    [propget, id(DISPID_NEWENUM), restricted]
+    HRESULT _NewEnum([out, retval] IUnknown **pVal);
+
+    [propget, id(1)]
+    HRESULT Count([out, retval] long *pVal);
+}
+
+[
+    object,
+    uuid(33c4643c-7811-46fa-a89a-768597bd7223),
+    oleautomation,
+    dual,
+    pointer_default(unique)
+ ]
+interface INetSharingEveryConnectionCollection : IDispatch
+{
+    [propget, id(DISPID_NEWENUM), restricted]
+    HRESULT _NewEnum([out, retval] IUnknown **pVal);
+
+    [propget, id(1)]
+    HRESULT Count([out, retval] long *pVal);
+}
+
+[
+    object,
+    uuid(38ae69e0-4409-402a-a2cb-e965c727f840),
+    oleautomation,
+    dual,
+    pointer_default(unique)
+ ]
+interface INetSharingPrivateConnectionCollection : IDispatch
+{
+    [propget, id(DISPID_NEWENUM), restricted]
+    HRESULT _NewEnum([out, retval] IUnknown **pVal);
+
+    [propget, id(1)]
+    HRESULT Count([out, retval] long *pVal);
+}
+
+[
+    object,
+    uuid(c08956b7-1cd3-11d1-b1c5-00805fc1270e),
+    oleautomation,
+    dual,
+    pointer_default(unique)
+]
+interface INetSharingManager : IDispatch
+{
+    [propget, id(1)]
+    HRESULT SharingInstalled([out, retval] VARIANT_BOOL *pbInstalled);
+
+    [propget, id(2)]
+    HRESULT EnumPublicConnections(
+            [in]  SHARINGCONNECTION_ENUM_FLAGS Flags,
+            [out, retval] INetSharingPublicConnectionCollection **ppColl);
+
+    [propget, id(3)]
+    HRESULT EnumPrivateConnections(
+            [in]  SHARINGCONNECTION_ENUM_FLAGS Flags,
+            [out, retval] INetSharingPrivateConnectionCollection **ppColl);
+
+    [propget, id(6)]
+    HRESULT INetSharingConfigurationForINetConnection(
+            [in] INetConnection *pNetConnection,
+            [out, retval] INetSharingConfiguration **ppNetSharingConfiguration);
+
+    [propget, id(7)]
+    HRESULT EnumEveryConnection([out, retval] INetSharingEveryConnectionCollection **ppColl);
+
+    [propget, id(8)]
+    HRESULT NetConnectionProps(
+            [in] INetConnection *pNetConnection,
+            [out, retval] INetConnectionProps **ppProps);
+}
index 833d31b..0dc4c05 100644 (file)
@@ -343,7 +343,7 @@ const USHORT PARAMFLAG_FHASDEFAULT  = 0x20;
 const USHORT PARAMFLAG_FHASCUSTDATA = 0x40;
 
 typedef struct tagIDLDESC {
-  ULONG dwReserved;
+  ULONG_PTR dwReserved;
   USHORT wIDLFlags;
 } IDLDESC, *LPIDLDESC;
 
@@ -404,8 +404,8 @@ typedef struct tagEXCEPINFO {
   BSTR bstrDescription;
   BSTR bstrHelpFile;
   DWORD dwHelpContext;
-  ULONG pvReserved;
-  ULONG pfnDeferredFillIn;
+  ULONG_PTR pvReserved;
+  ULONG_PTR pfnDeferredFillIn;
   SCODE scode;
 } EXCEPINFO;
 cpp_quote("#else")
diff --git a/reactos/include/psdk/propsys.idl b/reactos/include/psdk/propsys.idl
new file mode 100644 (file)
index 0000000..cc5770e
--- /dev/null
@@ -0,0 +1,815 @@
+/*
+ * system property interfaces
+ *
+ * Copyright 2009 Maarten Lankhorst
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+
+
+import "objidl.idl";
+import "oleidl.idl";
+import "ocidl.idl";
+import "shtypes.idl";
+import "structuredquerycondition.idl";
+
+cpp_quote("#ifndef PSSTDAPI")
+cpp_quote("#define PSSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE")
+cpp_quote("#endif")
+
+cpp_quote("#if 0")
+typedef PROPERTYKEY *REFPROPERTYKEY;
+cpp_quote("#endif")
+cpp_quote("#include <propkeydef.h>")
+
+[
+    uuid(b7d14566-0509-4cce-a71f-0a554233bd9b),
+    object,
+    pointer_default(unique)
+]
+interface IInitializeWithFile : IUnknown
+{
+    HRESULT Initialize(
+        [in,string] LPCWSTR pszFilePath,
+        [in] DWORD grfMode
+    );
+}
+
+[
+    uuid(b824b49d-22ac-4161-ac8a-9916e8fa3f7f),
+    object,
+    pointer_default(unique)
+]
+interface IInitializeWithStream : IUnknown
+{
+    [local] HRESULT Initialize(
+        [in] IStream *pstream,
+        [in] DWORD grfMode
+    );
+}
+
+[
+    uuid(886d8eeb-8cf2-4446-8d02-cdba1dbdcf99),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyStore : IUnknown
+{
+    HRESULT GetCount(
+        [out] DWORD *cProps
+    );
+    HRESULT GetAt(
+        [in] DWORD iProp,
+        [out] PROPERTYKEY *pkey
+    );
+    HRESULT GetValue(
+        [in] REFPROPERTYKEY key,
+        [out] PROPVARIANT *pv
+    );
+    HRESULT SetValue(
+        [in] REFPROPERTYKEY key,
+        [in] REFPROPVARIANT propvar
+    );
+    HRESULT Commit(void);
+}
+
+typedef IPropertyStore *LPPROPERTYSTORE;
+
+[
+    uuid(71604b0f-97b0-4764-8577-2f13e98a1422),
+    object,
+    pointer_default(unique)
+]
+interface INamedPropertyStore : IUnknown
+{
+    HRESULT GetNamedValue(
+        [in,string] LPCWSTR pszName,
+        [out] PROPVARIANT *ppropvar
+    );
+    HRESULT SetNamedValue(
+        [in,string] LPCWSTR pszName,
+        [in] REFPROPVARIANT propvar
+    );
+    HRESULT GetNameCount(
+        [out] DWORD *pdwCount
+    );
+    HRESULT GetNameAt(
+        [in] DWORD iProp,
+        [out] BSTR *pbstrName
+    );
+}
+
+typedef [v1_enum] enum GETPROPERTYSTOREFLAGS
+{
+    GPS_DEFAULT = 0x00,
+    GPS_HANDLERPROPERTIESONLY = 0x01,
+    GPS_READWRITE = 0x02,
+    GPS_TEMPORARY = 0x04,
+    GPS_FASTPROPERTIESONLY = 0x08,
+    GPS_OPENSLOWITEM = 0x10,
+    GPS_DELAYCREATION = 0x20,
+    GPS_BESTEFFORT = 0x40,
+    GPS_NO_OPLOCK = 0x80,
+    GPS_MASK_VALID = 0xff
+} GETPROPERTYSTOREFLAGS;
+
+cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(GETPROPERTYSTOREFLAGS)")
+
+[
+    uuid(fc0ca0a7-c316-4fd2-9031-3e628e6d4f23),
+    object
+]
+interface IObjectWithPropertyKey : IUnknown
+{
+    HRESULT SetPropertyKey(
+        [in] REFPROPERTYKEY key
+    );
+    HRESULT GetPropertyKey(
+        [out] PROPERTYKEY *key
+    );
+}
+
+typedef [v1_enum] enum PKA_FLAGS
+{
+    PKA_SET,
+    PKA_APPEND,
+    PKA_DELETE
+} PKA_FLAGS;
+
+[
+    uuid(f917bc8a-1bba-4478-a245-1bde03eb9431),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyChange : IObjectWithPropertyKey
+{
+    HRESULT ApplyToPropVariant([in] REFPROPVARIANT propvarin, [out] PROPVARIANT *propvarout);
+}
+
+[
+    uuid(380f5cad-1b5e-42f2-805d-637fd392d31e),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyChangeArray : IUnknown
+{
+    HRESULT GetCount(
+        [out] UINT *pcOperations
+    );
+    HRESULT GetAt(
+        [in] UINT iIndex,
+        [in] REFIID riid,
+        [out, iid_is(riid)] void **ppv
+    );
+    HRESULT InsertAt(
+        [in] UINT iIndex,
+        [in] IPropertyChange *ppropChange
+    );
+    HRESULT Append(
+        [in] IPropertyChange *ppropChange
+    );
+    HRESULT AppendOrReplace(
+        [in] IPropertyChange *ppropChange
+    );
+    HRESULT RemoveAt(
+        [in] UINT iIndex
+    );
+    HRESULT IsKeyInArray(
+        [in] REFPROPERTYKEY key
+    );
+}
+
+[
+    uuid(c8e2d566-186e-4d49-bf41-6909ead56acc),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyStoreCapabilities : IUnknown
+{
+    HRESULT IsPropertyWritable(
+        [in] REFPROPERTYKEY key
+    );
+}
+
+[
+    uuid(3017056d-9a91-4e90-937d-746c72abbf4f),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyStoreCache : IPropertyStore
+{
+    typedef [v1_enum] enum PSC_STATE
+    {
+        PSC_NORMAL = 0,
+        PSC_NOTINSOURCE,
+        PSC_DIRTY,
+        PSC_READONLY
+    } PSC_STATE;
+
+    HRESULT GetState(
+        [in] REFPROPERTYKEY key,
+        [out] PSC_STATE *pstate
+    );
+    HRESULT GetValueAndState(
+        [in] REFPROPERTYKEY key,
+        [out] PROPVARIANT *ppropvar,
+        [out] PSC_STATE *pstate
+    );
+    HRESULT SetState(
+        [in] REFPROPERTYKEY key,
+        [in] PSC_STATE pstate
+    );
+    HRESULT SetValueAndState(
+        [in] REFPROPERTYKEY key,
+        [in, unique] const PROPVARIANT *ppropvar,
+        [in] PSC_STATE state
+    );
+}
+
+[
+    uuid(11e1fbf9-2d56-4a6b-8db3-7cd193a471f2),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyEnumType : IUnknown
+{
+    typedef [v1_enum] enum PROPENUMTYPE
+    {
+        PET_DISCRETEVALUE = 0,
+        PET_RANGEDVALUE,
+        PET_DEFAULTVALUE,
+        PET_ENDRANGE
+    } PROPENUMTYPE;
+
+    HRESULT GetEnumType(
+        [out] PROPENUMTYPE *penumtype
+    );
+    HRESULT GetValue(
+        [out] PROPVARIANT *ppropvar
+    );
+    HRESULT GetRangeMinValue(
+        [out] PROPVARIANT *ppropvar
+    );
+    HRESULT GetRangeSetValue(
+        [out] PROPVARIANT *ppropvar
+    );
+    HRESULT GetDisplayText(
+        [out] LPWSTR *ppszDisplay
+    );
+}
+
+[
+    uuid(9b6e051c-5ddd-4321-9070-fe2acb55e974),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyEnumType2 : IPropertyEnumType
+{
+    HRESULT GetImageReference(
+        [out] LPWSTR *ppszImageRes
+    );
+}
+
+[
+    uuid(a99400f4-3d84-4557-94ba-1242fb2cc9a6),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyEnumTypeList : IUnknown
+{
+    HRESULT GetCount(
+        [out] UINT *pctypes
+    );
+    HRESULT GetAt(
+        [in] UINT itype,
+        [in] REFIID riid,
+        [out, iid_is(riid)] void **ppv
+    );
+    HRESULT GetConditionAt(
+        [in] UINT nIndex,
+        [in] REFIID riid,
+        [out, iid_is(riid)] void **ppv
+    );
+    HRESULT FindMatchingIndex(
+        [in] REFPROPVARIANT propvarCmp,
+        [out] UINT *pnIndex
+    );
+}
+
+[
+    uuid(6f79d558-3e96-4549-a1d1-7d75d2288814),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyDescription : IUnknown
+{
+    typedef [v1_enum] enum PROPDESC_TYPE_FLAGS
+    {
+        PDTF_DEFAULT = 0,
+        PDTF_MULTIPLEVALUES = 0x001,
+        PDTF_ISINNATE = 0x002,
+        PDTF_ISGROUP = 0x004,
+        PDTF_CANGROUPBY = 0x008,
+        PDTF_CANSTACKBY = 0x010,
+        PDTF_ISTREEPROPERTY = 0x020,
+        PDTF_INCLUDEINFULLTEXTQUERY = 0x040,
+        PDTF_ISVIEWABLE = 0x080,
+        PDTF_ISQUERYABLE = 0x100,
+        PDTF_CANBEPURGED = 0x200,
+        PDTF_SEARCHRAWVALUE = 0x400,
+        PDTF_ISSYSTEMPROPERTY = 0x80000000,
+        PDTF_MASK_ALL = 0x800007ff
+    } PROPDESC_TYPE_FLAGS;
+    cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_TYPE_FLAGS)")
+
+    typedef [v1_enum] enum PROPDESC_VIEW_FLAGS
+    {
+        PDVF_DEFAULT = 0x0000,
+        PDVF_CENTERALIGN = 0x0001,
+        PDVF_RIGHTALIGN = 0x0002,
+        PDVF_BEGINNEWGROUP = 0x0004,
+        PDVF_FILLAREA = 0x0008,
+        PDVF_SORTDESCENDING = 0x0010,
+        PDVF_SHOWONLYIFPRESENT = 0x0020,
+        PDVF_SHOWBYDEFAULT = 0x0040,
+        PDVF_SHOWINPRIMARYLIST = 0x0080,
+        PDVF_SHOWINSECONDARYLIST = 0x0100,
+        PDVF_HIDELABEL = 0x0200,
+        PDVF_HIDDEN = 0x0800,
+        PDVF_CANWRAP = 0x1000,
+        PDVF_MASK_ALL = 0x1bff
+    } PROPDESC_VIEW_FLAGS;
+    cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_VIEW_FLAGS)")
+
+    typedef [v1_enum] enum PROPDESC_DISPLAYTYPE
+    {
+        PDDT_STRING = 0,
+        PDDT_NUMBER,
+        PDDT_BOOLEAN,
+        PDDT_DATETIME,
+        PDDT_ENUMERATED
+    } PROPDESC_DISPLAYTYPE;
+
+    typedef [v1_enum] enum PROPDESC_GROUPING_RANGE
+    {
+        PDGR_DISCRETE = 0,
+        PDGR_ALPHANUMERIC,
+        PDGR_SIZE,
+        PDGR_DYNAMIC,
+        PDGR_DATE,
+        PDGR_PERCENT,
+        PDGR_ENUMERATED
+    } PROPDESC_GROUPING_RANGE;
+
+    typedef [v1_enum] enum PROPDESC_FORMAT_FLAGS
+    {
+        PDFF_DEFAULT = 0x0000,
+        PDFF_PREFIXNAME = 0x0001,
+        PDFF_FILENAME = 0x0002,
+        PDFF_ALWAYSKB = 0x0004,
+        PDFF_RESERVED_RIGHTTOLEFT = 0x0008,
+        PDFF_SHORTTIME = 0x0010,
+        PDFF_LONGTIME = 0x0020,
+        PDFF_HIDETIME = 0x0040,
+        PDFF_SHORTDATE = 0x0080,
+        PDFF_LONGDATE = 0x0100,
+        PDFF_HIDEDATE = 0x0200,
+        PDFF_RELATIVEDATE = 0x0400,
+        PDFF_USEEDITINVITATION = 0x0800,
+        PDFF_READONLY = 0x1000,
+        PDFF_NOAUTOREADINGORDER = 0x2000
+    } PROPDESC_FORMAT_FLAGS;
+    cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_FORMAT_FLAGS)")
+
+    typedef [v1_enum] enum PROPDESC_SORTDESCRIPTION
+    {
+        PDSD_GENERAL = 0,
+        PDSD_A_Z,
+        PDSD_LOWEST_HIGHEST,
+        PDSD_SMALLEST_BIGGEST,
+        PDSD_OLDEST_NEWEST
+    } PROPDESC_SORTDESCRIPTION;
+
+    typedef [v1_enum] enum PROPDESC_RELATIVEDESCRIPTION_TYPE
+    {
+        PDRDT_GENERAL = 0,
+        PDRDT_DATE,
+        PDRDT_SIZE,
+        PDRDT_COUNT,
+        PDRDT_REVISION,
+        PDRDT_LENGTH,
+        PDRDT_DURATION,
+        PDRDT_SPEED,
+        PDRDT_RATE,
+        PDRDT_RATING,
+        PDRDT_PRIORITY
+    } PROPDESC_RELATIVEDESCRIPTION_TYPE;
+
+    typedef [v1_enum] enum PROPDESC_AGGREGATION_TYPE
+    {
+        PDAT_DEFAULT = 0,
+        PDAT_FIRST,
+        PDAT_SUM,
+        PDAT_AVERAGE,
+        PDAT_DATERANGE,
+        PDAT_UNION,
+        PDAT_MAX,
+        PDAT_MIN
+    } PROPDESC_AGGREGATION_TYPE;
+
+    typedef [v1_enum] enum PROPDESC_CONDITION_TYPE
+    {
+        PDCOT_NONE = 0,
+        PDCOT_STRING,
+        PDCOT_SIZE,
+        PDCOT_DATETIME,
+        PDCOT_BOOLEAN,
+        PDCOT_NUMBER
+    } PROPDESC_CONDITION_TYPE;
+
+    HRESULT GetPropertyKey(
+        [out] PROPERTYKEY *pkey
+    );
+    HRESULT GetCanonicalName(
+        [out, string] LPWSTR *ppszName
+    );
+    HRESULT GetPropertyType(
+        [out] VARTYPE *pvartype
+    );
+    HRESULT GetDisplayName(
+        [out, string] LPWSTR *ppszName
+    );
+    HRESULT GetEditInvitation(
+        [out, string] LPWSTR *ppszName
+    );
+    HRESULT GetTypeFlags(
+        [in] PROPDESC_TYPE_FLAGS mask,
+        [out] PROPDESC_TYPE_FLAGS *ppdtFlags
+    );
+    HRESULT GetViewFlags(
+        [out] PROPDESC_VIEW_FLAGS *ppdvFlags
+    );
+    HRESULT GetDefaultColumnWidth(
+        [out] UINT *pcxChars
+    );
+    HRESULT GetDisplayType(
+        [out] PROPDESC_DISPLAYTYPE *pdisplaytype
+    );
+    HRESULT GetColumnState(
+        [out] SHCOLSTATEF *pcsFlags
+    );
+    HRESULT GetGroupingRange(
+        [out] PROPDESC_GROUPING_RANGE *psd
+    );
+    HRESULT GetRelativeDescriptionType(
+        [out] PROPDESC_RELATIVEDESCRIPTION_TYPE *prdt
+    );
+    HRESULT GetRelativeDescription(
+        [in] REFPROPVARIANT propvar1,
+        [in] REFPROPVARIANT propvar2,
+        [out,string] LPWSTR *ppszDesc1,
+        [out,string] LPWSTR *ppszDesc2
+    );
+    HRESULT GetSortDescription(
+        [out] PROPDESC_SORTDESCRIPTION *psd
+    );
+    HRESULT GetSortDescriptionLabel(
+        [in] BOOL fDescending,
+        [out,string] LPWSTR *ppszDescription
+    );
+    HRESULT GetAggregationType(
+        [out] PROPDESC_AGGREGATION_TYPE *paggtype
+    );
+    HRESULT GetConditionType(
+        [out] PROPDESC_CONDITION_TYPE *pcontype,
+        [out] CONDITION_OPERATION *popDefault
+    );
+    HRESULT GetEnumTypeList(
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+    [local] HRESULT CoerceToCanonicalValue(
+        [in,out] PROPVARIANT *propvar
+    );
+    [call_as(CoerceToCanonicalValue)] HRESULT RemoteCoerceToCanonicalValue(
+        [in] REFPROPVARIANT propvar,
+        [out] PROPVARIANT *ppropvar
+    );
+    HRESULT FormatForDisplay(
+        [in] REFPROPVARIANT propvar,
+        [in] PROPDESC_FORMAT_FLAGS flags,
+        [out,string] LPWSTR *ppszDisplay
+    );
+    HRESULT IsValueCanonical(
+        [in] REFPROPVARIANT propvar
+    );
+}
+
+[
+    uuid(57d2eded-5062-400e-b107-5dae79fe57a6),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyDescription2 : IPropertyDescription
+{
+    HRESULT GetImageReferenceForValue(
+        [in] REFPROPVARIANT propvar,
+        [out,string] LPWSTR *ppszImageRes
+    );
+}
+
+[
+    uuid(f67104fc-2af9-46fd-b32d-243c1404f3d1),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyDescriptionAliasInfo : IPropertyDescription
+{
+    HRESULT GetSortByAlias(
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+    HRESULT GetAdditionalSortByAliases(
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+}
+
+[
+    uuid(078f91bd-29a2-440f-924e-46a291524520),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyDescriptionSearchInfo : IPropertyDescription
+{
+    typedef [v1_enum] enum PROPDESC_SEARCHINFO_FLAGS
+    {
+        PDSIF_DEFAULT = 0x0,
+        PDSIF_ININVERTEDINDEX = 0x1,
+        PDSIF_ISCOLUMN = 0x2,
+        PDSIF_ISCOLUMNSPARSE = 0x4,
+        PDSIF_ALWAYSINCLUDE = 0x8,
+    } PROPDESC_SEARCHINFO_FLAGS;
+    cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(PROPDESC_SEARCHINFO_FLAGS)")
+
+    typedef [v1_enum] enum PROPDESC_COLUMNINDEX_TYPE
+    {
+        PDCIT_NONE = 0,
+        PDCIT_ONDISK,
+        PDCIT_INMEMORY,
+        PDCIT_ONDEMAND,
+        PDCIT_ONDISKALL,
+        PDCIT_ONDISKVECTOR
+    } PROPDESC_COLUMNINDEX_TYPE;
+
+    HRESULT GetSearchInfoFlags(
+        [out] PROPDESC_SEARCHINFO_FLAGS *ppdsiFlags
+    );
+    HRESULT GetColumnIndexType(
+        [out] PROPDESC_COLUMNINDEX_TYPE *ppdciType
+    );
+    HRESULT GetProjectionString(
+        [out] LPWSTR *ppszProjection
+    );
+    HRESULT GetMaxSize(
+        [out] UINT *pcbMaxSize
+    );
+}
+
+[
+    uuid(507393f4-2a3d-4a60-b59e-d9c75716c2dd),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyDescriptionRelatedPropertyInfo : IPropertyDescription
+{
+    HRESULT GetRelatedProperty(
+        [in] LPCWSTR ppszRelationshipName,
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+}
+
+typedef [v1_enum] enum PROPDESC_ENUMFILTER
+{
+    PDEF_ALL = 0,
+    PDEF_SYSTEM,
+    PDEF_NONSYSTEM,
+    PDEF_VIEWABLE,
+    PDEF_QUERYABLE,
+    PDEF_INFULLTEXTQUERY,
+    PDEF_COLUMN
+} PROPDESC_ENUMFILTER;
+
+[
+    uuid(ca724e8a-c3e6-442b-88a4-6fb0db8035a3),
+    object,
+    pointer_default(unique)
+]
+interface IPropertySystem : IUnknown
+{
+    HRESULT GetPropertyDescription(
+        [in] REFPROPERTYKEY propkey,
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+    HRESULT GetPropertyDescriptionByName(
+        [in,string] LPCWSTR pszCanonicalName,
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+    HRESULT GetPropertyDescriptionListFromString(
+        [in,string] LPCWSTR pszPropList,
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+    HRESULT EnumeratePropertyDescriptions(
+        [in] PROPDESC_ENUMFILTER filterOn,
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+    HRESULT FormatForDisplay(
+        [in] REFPROPERTYKEY key,
+        [in] REFPROPVARIANT propvar,
+        [in] PROPDESC_FORMAT_FLAGS pdff,
+        [out,string,size_is(cchText)] LPWSTR pszText,
+        [in] DWORD cchText
+    );
+    HRESULT FormatForDisplayAlloc(
+        [in] REFPROPERTYKEY key,
+        [in] REFPROPVARIANT propvar,
+        [in] PROPDESC_FORMAT_FLAGS pdff,
+        [out,string] LPWSTR *pszText
+    );
+    HRESULT RegisterPropertySchema(
+        [in,string] LPCWSTR pszPath
+    );
+    HRESULT UnregisterPropertySchema(
+        [in,string] LPCWSTR pszPath
+    );
+    HRESULT RefreshPropertySchema(void);
+}
+
+[
+    uuid(1f9fc1d0-c39b-4b26-817f-011967d3440e),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyDescriptionList : IUnknown
+{
+    HRESULT GetCount(
+        [out] UINT *pcelem
+    );
+    HRESULT GetAt(
+        [in] UINT iElem,
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+}
+
+[
+    uuid(bc110b6d-57e8-4148-a9c6-91015ab2f3a5),
+    object,
+    pointer_default(unique)
+]
+interface IPropertyStoreFactory : IUnknown
+{
+    HRESULT GetPropertyStore(
+        [in] GETPROPERTYSTOREFLAGS flags,
+        [in,unique] IUnknown *pUnkFactory,
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+    HRESULT GetPropertyStoreForKeys(
+        [in,unique] const PROPERTYKEY *rgKeys,
+        [in] UINT cKeys,
+        [in] GETPROPERTYSTOREFLAGS flags,
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+}
+
+[
+    uuid(40d4577f-e237-4bdb-bd69-58f089431b6a),
+    object,
+    pointer_default(unique)
+]
+interface IDelayedPropertyStoreFactory : IPropertyStoreFactory
+{
+    HRESULT GetDelayedPropertyStore(
+        [in] GETPROPERTYSTOREFLAGS flags,
+        [in] DWORD dwStoreId,
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+}
+
+[v1_enum] enum _PERSIST_SPROPSTORE_FLAGS
+{
+    FPSPS_DEFAULT = 0,
+    FPSPS_READONLY = 1
+};
+typedef int PERSIST_SPROPSTORE_FLAGS;
+
+typedef struct tagSERIALIZEDROPSTORAGE SERIALIZEDPROPSTORAGE;
+
+cpp_quote("#if 0") /* Wine doesn't have __unaligned builtin, hack */
+typedef SERIALIZEDPROPSTORAGE *PUSERIALIZEDPROPSTORAGE;
+typedef const SERIALIZEDPROPSTORAGE *PCUSERIALIZEDPROPSTORAGE;
+cpp_quote("#endif")
+cpp_quote("typedef SERIALIZEDPROPSTORAGE UNALIGNED *PUSERIALIZEDPROPSTORAGE;")
+cpp_quote("typedef const SERIALIZEDPROPSTORAGE UNALIGNED *PCUSERIALIZEDPROPSTORAGE;")
+
+[
+    uuid(e318ad57-0aa0-450f-aca5-6fab7103d917),
+    pointer_default(unique),
+    local
+]
+interface IPersistSerializedPropStorage : IUnknown
+{
+    HRESULT SetFlags(
+        [in] PERSIST_SPROPSTORE_FLAGS flags
+    );
+    HRESULT SetPropertyStorage(
+        [in] PCUSERIALIZEDPROPSTORAGE psps,
+        [in] DWORD cb
+    );
+    HRESULT GetPropertyStorage(
+        [out] SERIALIZEDPROPSTORAGE **psps,
+        [out] DWORD *pcb
+    );
+}
+
+[
+    uuid(77effa68-4f98-4366-ba72-573b3d880571),
+    pointer_default(unique),
+    local
+]
+interface IPersistSerializedPropStorage2 : IPersistSerializedPropStorage
+{
+    HRESULT GetpropertyStorageSize(
+        [out] DWORD *pcb
+    );
+    HRESULT GetPropertyStorageBuffer(
+        [out] SERIALIZEDPROPSTORAGE *psps,
+        [in] DWORD cb,
+        [out] DWORD *pcbWritten
+    );
+}
+
+[
+    uuid(fa955fd9-38be-4879-a6ce-824cf52d609f),
+    object,
+    pointer_default(unique)
+]
+interface IPropertySystemChangeNotify : IUnknown
+{
+    HRESULT SchemaRefreshed(void);
+}
+
+/* Interface for CoCreateInstance? */
+[
+    uuid(75121952-e0d0-43e5-9380-1d80483acf72),
+    pointer_default(unique)
+]
+interface ICreateObject : IUnknown
+{
+    HRESULT CreateObject(
+        [in] REFCLSID clsid,
+        [in,unique] IUnknown *pUnkOuter,
+        [in] REFIID riid,
+        [out,iid_is(riid)] void **ppv
+    );
+}
+
+/* TODO: Add remainder of the C api here */
+
+[
+    uuid(2cda3294-6c4f-4020-b161-27c530c81fa6),
+    lcid(0x0000),
+    version(1.0)
+]
+library PropSysObjects
+{
+    [uuid(9a02e012-6303-4e1e-b9a1-630f802592c5)] coclass InMemoryPropertyStore
+    {
+        interface IPropertyStore;
+    }
+    [uuid(b8967f86-58ae-4f96-9fb2-5d7904798f4b)] coclass PropertySystem
+    {
+        interface IPropertySystem;
+    }
+}
index ebf38da..6384703 100644 (file)
@@ -5,6 +5,7 @@
        <file>activaut.idl</file>
        <file>activdbg.idl</file>
        <file>activscp.idl</file>
+       <file>asptlb.idl</file>
        <file>bdaiface.idl</file>
        <file>bits1_5.idl</file>
        <file>bits.idl</file>
        <file>mimeinfo.idl</file>
        <file>mlang.idl</file>
        <file>msctf.idl</file>
+       <file>msdadc.idl</file>
        <file>mshtml.idl</file>
+       <file>msinkaut.idl</file>
        <file>mstask.idl</file>
        <file>msxml.idl</file>
        <file>msxml2.idl</file>
        <file>netfw.idl</file>
+       <file>netcon.idl</file>
        <file>oaidl.idl</file>
        <file>objidl.idl</file>
        <file>objsafe.idl</file>
@@ -43,6 +47,7 @@
        <file>optary.idl</file>
        <file>perhist.idl</file>
        <file>propidl.idl</file>
+       <file>propsys.idl</file>
        <file>pstore.idl</file>
        <file>richole.idl</file>
        <file>sensevts.idl</file>
@@ -69,6 +74,7 @@
        <file>xmldso.idl</file>
        <file>xmldom.idl</file>
        <file>xmllite.idl</file>
+       <file>wbemcli.idl</file>
        <file>wia_lh.idl</file>
        <file>wia_xp.idl</file>
 </module>
index ff7b94e..888f9d9 100644 (file)
@@ -367,6 +367,8 @@ BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA);
 BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW);
 int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
 int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
+int WINAPI ShellMessageBoxA(HINSTANCE,HWND,LPCSTR,LPCSTR,UINT,...);
+int WINAPI ShellMessageBoxW(HINSTANCE,HWND,LPCWSTR,LPCWSTR,UINT,...);
 HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
 HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
 BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA);
@@ -403,6 +405,7 @@ typedef LPSHNAMEMAPPINGW LPSHNAMEMAPPING;
 #define ShellAbout ShellAboutW
 #define ShellExecute ShellExecuteW
 #define ShellExecuteEx ShellExecuteExW
+#define ShellMessageBox ShellMessageBoxW
 #define SHFileOperation SHFileOperationW
 #define SHGetFileInfo SHGetFileInfoW
 #define SHGetNewLinkInfo SHGetNewLinkInfoW
@@ -429,6 +432,7 @@ typedef LPSHNAMEMAPPINGA LPSHNAMEMAPPING;
 #define ShellAbout ShellAboutA
 #define ShellExecute ShellExecuteA
 #define ShellExecuteEx ShellExecuteExA
+#define ShellMessageBox ShellMessageBoxA
 #define SHFileOperation SHFileOperationA
 #define SHGetFileInfo SHGetFileInfoA
 #define SHGetNewLinkInfo SHGetNewLinkInfoA
index 4e2d2fe..07c3059 100644 (file)
@@ -118,3 +118,29 @@ coclass ShellFolderViewOC
     [default]         interface     IFolderViewOC;
     [default, source] dispinterface DShellFolderViewEvents;
 }
+
+/*****************************************************************************
+ * IAsyncOperation interface
+ */
+[
+    uuid(3d8b0590-f691-11d2-8ea9-006097df5bd4),
+    object,
+]
+
+interface IAsyncOperation : IUnknown
+{
+    typedef [unique] IAsyncOperation *LPASYNCOPERATION;
+
+    HRESULT SetAsyncMode([in] BOOL fDoOpAsync);
+
+    HRESULT GetAsyncMode([out] BOOL *pfIsOpAsync);
+
+    HRESULT StartOperation([in, unique, optional] IBindCtx *pbcReserved);
+
+    HRESULT InOperation([out] BOOL *pfInAsyncOp);
+
+    HRESULT EndOperation(
+            [in] HRESULT hResult,
+            [in, unique] IBindCtx *pbcReserved,
+            [in] DWORD dwEffects);
+}
index 6990466..152da19 100644 (file)
@@ -38,7 +38,7 @@ DEFINE_OLEGUID(CGID_ShellDocView,       0x000214D1L, 0, 0);
 DEFINE_OLEGUID(CGID_ShellServiceObject, 0x000214D2L, 0, 0);
 DEFINE_OLEGUID(CGID_ExplorerBarDoc,     0x000214D3L, 0, 0);
 
-DEFINE_OLEGUID(IID_IShellIcon,          0x000214E5L, 0, 0);
+/*DEFINE_OLEGUID(IID_IShellIcon,          0x000214E5L, 0, 0);*/
 DEFINE_OLEGUID(IID_IShellDetails,       0x000214ECL, 0, 0);
 DEFINE_OLEGUID(IID_IDelayedRelease,     0x000214EDL, 0, 0);
 DEFINE_OLEGUID(IID_IShellCopyHookA,     0x000214EFL, 0, 0);
@@ -185,4 +185,16 @@ DEFINE_GUID(IID_IDeskBarClient,          0xEB0FE175, 0x1A3A, 0x11D0, 0x89, 0xB3,
 
 /* END REACTOS ONLY */
 
+/* IExplorerBrowser */
+DEFINE_GUID(CLSID_ExplorerBrowser, 0x71F96385, 0xDDD6, 0x48D3, 0xA0, 0xC1, 0xAE, 0x06, 0xE8, 0xB0, 0x55, 0xFB);
+
+DEFINE_GUID(EP_NavPane, 0xCB316B22, 0x25F7, 0x42B8, 0x8A, 0x09, 0x54, 0x0D, 0x23, 0xA4, 0x3C, 0x2F);
+DEFINE_GUID(EP_Commands,0xD9745868, 0xCA5F, 0x4A76, 0x91, 0xCD, 0xF5, 0xA1, 0x29, 0xFB, 0xB0, 0x76);
+DEFINE_GUID(EP_Commands_Organize, 0x72E81700, 0xE3EC, 0x4660, 0xBF, 0x24, 0x3C, 0x3B, 0x7B, 0x64, 0x88, 0x06);
+DEFINE_GUID(EP_Commands_View, 0x21F7C32D, 0xEEAA, 0x439B, 0xBB, 0x51, 0x37, 0xB9, 0x6F, 0xD6, 0xA9, 0x43);
+DEFINE_GUID(EP_DetailsPane, 0x43ABF98B, 0x89B8, 0x472D, 0xB9, 0xCE, 0xE6, 0x9B, 0x82, 0x29, 0xF0, 0x19);
+DEFINE_GUID(EP_PreviewPane, 0x893C63D1, 0x45C8, 0x4D17, 0xBE, 0x19, 0x22, 0x3B, 0xE7, 0x1B, 0xE3, 0x65);
+DEFINE_GUID(EP_QueryPane, 0x65BCDE4F, 0x4F07, 0x4F27, 0x83, 0xA7, 0x1A, 0xFC, 0xA4, 0xDF, 0x7D, 0xDD);
+DEFINE_GUID(EP_AdvQueryPane, 0xB4E9DB8B, 0x34BA, 0x4C39, 0xB5, 0xCC, 0x16, 0xA1, 0xBD, 0x2C, 0x41, 0x1C);
+
 #endif /* __WINE_SHLGUID_H */
index 5c16646..b55b90d 100644 (file)
@@ -9,7 +9,7 @@ DEFINE_GUID(IID_IShellMenu2,             0x6F51C646, 0x0EFE, 0x4370, 0x88, 0x2A,
 DEFINE_GUID(IID_IWinEventHandler,        0xEA5F2D61, 0xE008, 0x11CF, 0x99, 0xCB, 0x00, 0xC0, 0x4F, 0xD6, 0x44, 0x97);
 DEFINE_GUID(IID_IShellMenuAcc,           0xFAF6FE96, 0xCE5E, 0x11D1, 0x83, 0x71, 0x00, 0xC0, 0x4F, 0xD9, 0x18, 0xD0);
 DEFINE_GUID(IID_IShellBrowserService,    0x1307EE17, 0xEA83, 0x49EB, 0x96, 0xB2, 0x3A, 0x28, 0xE2, 0xD7, 0x04, 0x8A);
-DEFINE_GUID(IID_IFolderView,             0xCDE725B0, 0xCCC9, 0x4519, 0x91, 0x7E, 0x32, 0x5D, 0x72, 0xFA, 0xB4, 0xCE);
+//DEFINE_GUID(IID_IFolderView,             0xCDE725B0, 0xCCC9, 0x4519, 0x91, 0x7E, 0x32, 0x5D, 0x72, 0xFA, 0xB4, 0xCE);
 
 DEFINE_GUID(SID_SProxyBrowser,           0x20C46561, 0x8491, 0x11CF, 0x96, 0x0C, 0x00, 0x80, 0xC7, 0xF4, 0xEE, 0x85);
 
index 3db2837..57497f0 100644 (file)
 #include <prsht.h>
 #include <shlguid.h>
 
+#ifdef WINE_NO_UNICODE_MACROS
+#undef GetObject
+#endif
+
 #ifdef __cplusplus
 extern "C" {
 #endif /* defined(__cplusplus) */
@@ -381,34 +385,29 @@ typedef struct
 #define FCIDM_TOOLBAR      (FCIDM_BROWSERFIRST + 0)
 #define FCIDM_STATUS       (FCIDM_BROWSERFIRST + 1)
 
-
-/****************************************************************************
- * IShellIcon interface
- */
-
-#define INTERFACE IShellIcon
-DECLARE_INTERFACE_(IShellIcon,IUnknown)
+#define INTERFACE IShellDetails
+DECLARE_INTERFACE_(IShellDetails, IUnknown)
 {
     /*** IUnknown methods ***/
-    STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE;
-    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
-    STDMETHOD_(ULONG,Release)(THIS) PURE;
-    /*** IShellIcon methods ***/
-    STDMETHOD(GetIconOf)(THIS_ LPCITEMIDLIST pidl, UINT flags, LPINT lpIconIndex) PURE;
+    STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void **ppv) PURE;
+    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
+    STDMETHOD_(ULONG,Release) (THIS) PURE;
+    /*** IShellDetails methods ***/
+    STDMETHOD(GetDetailsOf)(THIS_ PCUITEMID_CHILD pidl, UINT iColumn, SHELLDETAILS *pDetails) PURE;
+    STDMETHOD(ColumnClick)(THIS_ UINT iColumn) PURE;
 };
 #undef INTERFACE
 
 #if !defined(__cplusplus) || defined(CINTERFACE)
 /*** IUnknown methods ***/
-#define IShellIcon_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
-#define IShellIcon_AddRef(p)                  (p)->lpVtbl->AddRef(p)
-#define IShellIcon_Release(p)                 (p)->lpVtbl->Release(p)
-/*** IShellIcon methods ***/
-#define IShellIcon_GetIconOf(p,a,b,c)         (p)->lpVtbl->GetIconOf(p,a,b,c)
+#define IShellDetails_QueryInterface(p,a,b)    (p)->lpVtbl->QueryInterface(p,a,b)
+#define IShellDetails_AddRef(p)                (p)->lpVtbl->AddRef(p)
+#define IShellDetails_Release(p)               (p)->lpVtbl->Release(p)
+/*** IShellDetails methods ***/
+#define IShellDetails_GetDetailsOf(p,a,b,c)    (p)->lpVtbl->GetDetailsOf(p,a,b,c)
+#define IShellDetails_ColumnClick(p,a)         (p)->lpVtbl->ColumnClick(p,a)
 #endif
 
-typedef IShellIcon *LPSHELLICON;
-
 /* IQueryInfo interface */
 #define INTERFACE IQueryInfo
 DECLARE_INTERFACE_(IQueryInfo,IUnknown)
@@ -578,6 +577,99 @@ DECLARE_INTERFACE_(IShellFolderViewCB,IUnknown)
 #define IShellFolderViewCB_MessageSFVCB(p,a,b,c)      (p)->lpVtbl->MessageSFVCB(p,a,b,c)
 #endif
 
+/****************************************************************************
+ * IShellFolderView interface
+ */
+
+#include <pshpack8.h>
+
+typedef struct _ITEMSPACING
+{
+    int cxSmall;
+    int cySmall;
+    int cxLarge;
+    int cyLarge;
+} ITEMSPACING;
+
+#include <poppack.h>
+
+#define INTERFACE IShellFolderView
+DEFINE_GUID(IID_IShellFolderView,0x37a378c0,0xf82d,0x11ce,0xae,0x65,0x08,0x00,0x2b,0x2e,0x12,0x62);
+DECLARE_INTERFACE_(IShellFolderView, IUnknown)
+{
+    /*** IUnknown methods ***/
+    STDMETHOD_(HRESULT,QueryInterface) (THIS_ REFIID riid, void **ppv) PURE;
+    STDMETHOD_(ULONG,AddRef) (THIS)  PURE;
+    STDMETHOD_(ULONG,Release) (THIS) PURE;
+
+    /*** IShellFolderView methods ***/
+    STDMETHOD(Rearrange) (THIS_ LPARAM lParamSort) PURE;
+    STDMETHOD(GetArrangeParam) (THIS_ LPARAM *plParamSort) PURE;
+    STDMETHOD(ArrangeGrid) (THIS) PURE;
+    STDMETHOD(AutoArrange) (THIS) PURE;
+    STDMETHOD(GetAutoArrange) (THIS) PURE;
+    STDMETHOD(AddObject) (THIS_ PITEMID_CHILD pidl, UINT *puItem) PURE;
+    STDMETHOD(GetObject) (THIS_ PITEMID_CHILD *ppidl, UINT uItem) PURE;
+    STDMETHOD(RemoveObject) (THIS_ PITEMID_CHILD pidl, UINT *puItem) PURE;
+    STDMETHOD(GetObjectCount) (THIS_ UINT *puCount) PURE;
+    STDMETHOD(SetObjectCount) (THIS_ UINT uCount, UINT dwFlags) PURE;
+    STDMETHOD(UpdateObject) (THIS_ PITEMID_CHILD pidlOld, PITEMID_CHILD pidlNew, UINT *puItem) PURE;
+    STDMETHOD(RefreshObject) (THIS_ PITEMID_CHILD pidl, UINT *puItem) PURE;
+    STDMETHOD(SetRedraw) (THIS_ BOOL bRedraw) PURE;
+    STDMETHOD(GetSelectedCount) (THIS_ UINT *puSelected) PURE;
+    STDMETHOD(GetSelectedObjects) (THIS_ PCITEMID_CHILD **pppidl, UINT *puItems) PURE;
+    STDMETHOD(IsDropOnSource) (THIS_ IDropTarget *pDropTarget) PURE;
+    STDMETHOD(GetDragPoint) (THIS_ POINT *ppt) PURE;
+    STDMETHOD(GetDropPoint) (THIS_ POINT *ppt) PURE;
+    STDMETHOD(MoveIcons) (THIS_ IDataObject *pDataObject) PURE;
+    STDMETHOD(SetItemPos) (THIS_ PCUITEMID_CHILD pidl, POINT *ppt) PURE;
+    STDMETHOD(IsBkDropTarget) (THIS_ IDropTarget *pDropTarget) PURE;
+    STDMETHOD(SetClipboard) (THIS_ BOOL bMove) PURE;
+    STDMETHOD(SetPoints) (THIS_ IDataObject *pDataObject) PURE;
+    STDMETHOD(GetItemSpacing) (THIS_ ITEMSPACING *pSpacing) PURE;
+    STDMETHOD(SetCallback) (THIS_ IShellFolderViewCB* pNewCB, IShellFolderViewCB** ppOldCB) PURE;
+    STDMETHOD(Select) ( THIS_  UINT dwFlags ) PURE;
+    STDMETHOD(QuerySupport) (THIS_ UINT * pdwSupport ) PURE;
+    STDMETHOD(SetAutomationObject)(THIS_ IDispatch* pdisp) PURE;
+};
+#undef INTERFACE
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+/*** IUnknown methods ***/
+#define IShellFolderView_QueryInterface(p,a,b)      (p)->lpVtbl->QueryInterface(p,a,b)
+#define IShellFolderView_AddRef(p)                  (p)->lpVtbl->AddRef(p)
+#define IShellFolderView_Release(p)                 (p)->lpVtbl->Release(p)
+/*** IShellFolderView methods ***/
+#define IShellFolderView_Rearrange(p,a)             (p)->lpVtbl->Rearrange(p,a)
+#define IShellFolderView_GetArrangeParam(p,a)       (p)->lpVtbl->GetArrangeParam(p,a)
+#define IShellFolderView_ArrangeGrid(p)             (p)->lpVtbl->ArrangeGrid(p)
+#define IShellFolderView_AutoArrange(p)             (p)->lpVtbl->AutoArrange(p)
+#define IShellFolderView_GetAutoArrange(p)          (p)->lpVtbl->GetAutoArrange(p)
+#define IShellFolderView_AddObject(p,a,b)           (p)->lpVtbl->AddObject(p,a,b)
+#define IShellFolderView_GetObject(p,a,b)           (p)->lpVtbl->GetObject(p,a,b)
+#define IShellFolderView_RemoveObject(p,a,b)        (p)->lpVtbl->RemoveObject(p,a,b)
+#define IShellFolderView_GetObjectCount(p,a)        (p)->lpVtbl->GetObjectCount(p,a)
+#define IShellFolderView_SetObjectCount(p,a,b)      (p)->lpVtbl->SetObjectCount(p,a,b)
+#define IShellFolderView_UpdateObject(p,a,b,c)      (p)->lpVtbl->UpdateObject(p,a,b,c)
+#define IShellFolderView_RefreshObject(p,a,b)       (p)->lpVtbl->RefreshObject(p,a,b)
+#define IShellFolderView_SetRedraw(p,a)             (p)->lpVtbl->SetRedraw(p,a)
+#define IShellFolderView_GetSelectedCount(p,a)      (p)->lpVtbl->GetSelectedCount(p,a)
+#define IShellFolderView_GetSelectedObjects(p,a,b)  (p)->lpVtbl->GetSelectedObjects(p,a,b)
+#define IShellFolderView_IsDropOnSource(p,a)        (p)->lpVtbl->IsDropOnSource(p,a)
+#define IShellFolderView_GetDragPoint(p,a)          (p)->lpVtbl->GetDragPoint(p,a)
+#define IShellFolderView_GetDropPoint(p,a)          (p)->lpVtbl->GetDropPoint(p,a)
+#define IShellFolderView_MoveIcons(p,a)             (p)->lpVtbl->MoveIcons(p,a)
+#define IShellFolderView_SetItemPos(p,a,b)          (p)->lpVtbl->SetItemPos(p,a,b)
+#define IShellFolderView_DropTarget(p,a)            (p)->lpVtbl->DropTarget(p,a)
+#define IShellFolderView_SetClipboard(p,a)          (p)->lpVtbl->SetClipboard(p,a)
+#define IShellFolderView_SetPoints(p,a)             (p)->lpVtbl->SetPoints(p,a)
+#define IShellFolderView_GetItemSpacing(p,a)        (p)->lpVtbl->GetItemSpacing(p,a)
+#define IShellFolderView_SetCallback(p,a)           (p)->lpVtbl->SetCallback(p,a)
+#define IShellFolderView_Select(p,a)                (p)->lpVtbl->Select(p,a)
+#define IShellFolderView_QuerySupport(p,a)          (p)->lpVtbl->QuerySupport(p,a)
+#define IShellFolderView_SetAutomationObject(p,a)   (p)->lpVtbl->SetAutomationObject(p,a)
+#endif
+
 /* IProgressDialog interface */
 #define PROGDLG_NORMAL           0x00000000
 #define PROGDLG_MODAL            0x00000001
@@ -757,6 +849,8 @@ typedef HRESULT (CALLBACK *LPFNVIEWCALLBACK)(
        WPARAM wParam,
        LPARAM lParam);
 
+#include <pshpack8.h>
+
 typedef struct _CSFV
 {
   UINT             cbSize;
@@ -768,6 +862,8 @@ typedef struct _CSFV
   FOLDERVIEWMODE   fvm;
 } CSFV, *LPCSFV;
 
+#include <poppack.h>
+
 HRESULT WINAPI SHCreateShellFolderViewEx(LPCSFV pshfvi, IShellView **ppshv);
 
 /* SHCreateShellFolderViewEx callback messages */
@@ -828,6 +924,8 @@ HRESULT WINAPI SHCreateShellFolderViewEx(LPCSFV pshfvi, IShellView **ppshv);
 #define SFVM_GET_WEBVIEW_THEME        86 /* undocumented */
 #define SFVM_GETDEFERREDVIEWSETTINGS  92 /* undocumented */
 
+#include <pshpack8.h>
+
 typedef struct _SFV_CREATE
 {
     UINT cbSize;
@@ -836,6 +934,8 @@ typedef struct _SFV_CREATE
     IShellFolderViewCB *psfvcb;
 } SFV_CREATE;
 
+#include <poppack.h>
+
 HRESULT WINAPI SHCreateShellFolderView(const SFV_CREATE *pscfv, IShellView **ppsv);
 
 /* Types and definitions for the SFM_* parameters */
@@ -1264,15 +1364,16 @@ typedef struct _SHChangeNotifyEntry
 #define SHCNF_PRINTERW         0x0006
 #define SHCNF_TYPE             0x00FF
 #define SHCNF_FLUSH            0x1000
-#define SHCNF_FLUSHNOWAIT      0x2000
+#define SHCNF_FLUSHNOWAIT      0x3000
+#define SHCNF_NOTIFYRECURSIVE  0x10000
 
 #define SHCNF_PATH              WINELIB_NAME_AW(SHCNF_PATH)
 #define SHCNF_PRINTER           WINELIB_NAME_AW(SHCNF_PRINTER)
 
-#define SHCNRF_InterruptLevel   0x1
-#define SHCNRF_ShellLevel   0x2
-#define SHCNRF_RecursiveInterrupt   0x1000
-#define SHCNRF_NewDelivery  0x8000
+#define SHCNRF_InterruptLevel 0x0001
+#define SHCNRF_ShellLevel 0x0002
+#define SHCNRF_RecursiveInterrupt 0x1000
+#define SHCNRF_NewDelivery 0x8000
 
 void WINAPI SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2);
 
index bbbb39a..52eaef2 100644 (file)
@@ -118,7 +118,8 @@ cpp_quote("#endif")
 [
     object,
     uuid(000214E9-0000-0000-C000-000000000046),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface IShellPropSheetExt : IUnknown
 {
@@ -175,10 +176,6 @@ interface IShellFolder : IUnknown
 
     typedef DWORD SHCONTF;
 
-    cpp_quote("#define SHCIDS_ALLFIELDS        0x80000000L")
-    cpp_quote("#define SHCIDS_CANONICALONLY    0x10000000L")
-    cpp_quote("#define SHCIDS_BITMASK          0xFFFF0000L")
-    cpp_quote("#define SHCIDS_COLUMNMASK       0x0000FFFFL")
     cpp_quote("#define SFGAO_CANCOPY           DROPEFFECT_COPY")
     cpp_quote("#define SFGAO_CANMOVE           DROPEFFECT_MOVE")
     cpp_quote("#define SFGAO_CANLINK           DROPEFFECT_LINK")
@@ -375,6 +372,37 @@ interface IShellItem : IUnknown
         [out] int *piOrder);
 }
 
+typedef enum tagNWMF {
+    NWMF_UNLOADING        = 0x0001,
+    NWMF_USERINITED       = 0x0002,
+    NWMF_FIRST            = 0x0004,
+    NWMF_OVERRIDEKEY      = 0x0008,
+    NWMF_SHOWHELP         = 0x0010,
+    NWMF_HTMLDIALOG       = 0x0020,
+    NWMF_FROMDIALOGCHILD  = 0x0040,
+    NWMF_USERREQUESTED    = 0x0080,
+    NWMF_USERALLOWED      = 0x0100
+} NWMF;
+
+[
+    uuid(d2bc4c84-3f72-4a52-a604-7bcbf3982cbb),
+    object,
+    pointer_default(unique)
+]
+interface INewWindowManager : IUnknown
+{
+    HRESULT EvaluateNewWindow(
+        [in, string] LPCWSTR pszUrl,
+        [in, string] LPCWSTR pszName,
+        [in, string] LPCWSTR pszUrlContext,
+        [in, string] LPCWSTR pszFeatures,
+        [in]         BOOL fReplace,
+        [in]         DWORD dwFlags,
+        [in]         DWORD dwUserActionTime);
+}
+
+cpp_quote("#define SID_SNewWindowManager IID_INewWindowManager")
+
 /*****************************************************************************
  * FOLDERSETTINGS
  */
@@ -400,11 +428,25 @@ typedef enum
     FWF_SINGLECLICKACTIVATE = 0x00008000,
     FWF_NOWEBVIEW           = 0x00010000,
     FWF_HIDEFILENAMES       = 0x00020000,
-    FWF_CHECKSELECT         = 0x00040000
+    FWF_CHECKSELECT         = 0x00040000,
+    FWF_NOENUMREFRESH       = 0x00080000,
+    FWF_NOGROUPING          = 0x00100000,
+    FWF_FULLROWSELECT       = 0x00200000,
+    FWF_NOFILTERS           = 0x00400000,
+    FWF_NOCOLUMNHEADER      = 0x00800000,
+    FWF_NOHEADERINALLVIEWS  = 0x01000000,
+    FWF_EXTENDEDTILES       = 0x02000000,
+    FWF_TRICHECKSELECT      = 0x04000000,
+    FWF_AUTOCHECKSELECT     = 0x08000000,
+    FWF_NOBROWSERVIEWSTATE  = 0x10000000,
+    FWF_SUBSETGROUPS        = 0x20000000,
+    FWF_USESEARCHFOLDER     = 0x40000000,
+    FWF_ALLOWRTLREADING     = 0x80000000
 } FOLDERFLAGS;
 
 typedef enum
 {
+    FVM_AUTO       =-1,
     FVM_ICON       = 1,
     FVM_FIRST      = FVM_ICON,
     FVM_SMALLICON  = 2,
@@ -413,7 +455,8 @@ typedef enum
     FVM_THUMBNAIL  = 5,
     FVM_TILE       = 6,
     FVM_THUMBSTRIP = 7,
-    FVM_LAST       = FVM_THUMBSTRIP
+    FVM_CONTENT    = 8,
+    FVM_LAST       = FVM_CONTENT
 } FOLDERVIEWMODE;
 
 typedef struct
@@ -423,6 +466,21 @@ typedef struct
 } FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS;
 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
 
+/*****************************************************************************
+ * IShellIcon interface
+ */
+[
+    uuid(000214e5-0000-0000-c000-000000000046),
+    object,
+    pointer_default(unique)
+]
+interface IShellIcon : IUnknown
+{
+    HRESULT GetIconOf(
+        [in] PCUITEMID_CHILD pidl,
+        [in] UINT flags,
+        [out] int *pIconIndex);
+}
 
 /*****************************************************************************
  * IShellView interface
@@ -498,81 +556,91 @@ interface IShellView : IOleWindow
         [out, iid_is(riid)] void **ppv);
 }
 
-
 [
-    uuid(88E39E80-3578-11CF-AE69-08002B2E1262),
     object,
+    uuid(88e39e80-3578-11cf-ae69-08002b2e1262),
     pointer_default(unique)
 ]
-interface IShellView2 :  IShellView
+interface IShellView2 : IShellView
 {
     typedef GUID SHELLVIEWID;
-
-    cpp_quote("#define SV2GV_CURRENTVIEW ((UINT)-1)")
-    cpp_quote("#define SV2GV_DEFAULTVIEW ((UINT)-2)")
-
-    cpp_quote("#include <pshpack8.h>")
+cpp_quote("#include <pshpack8.h>")
     typedef struct _SV2CVW2_PARAMS
     {
         DWORD cbSize;
-
         IShellView *psvPrev;
         LPCFOLDERSETTINGS pfs;
         IShellBrowser *psbOwner;
         RECT *prcView;
         SHELLVIEWID const *pvid;
         HWND hwndView;
-
     } SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS;
-
-    cpp_quote("#include <poppack.h>")
+cpp_quote("#include <poppack.h>")
 
     HRESULT GetView(
-        [in, out] SHELLVIEWID* pvid,
-        [in] ULONG uView);
-
+        [in, out] SHELLVIEWID *view_guid,
+        [in] ULONG view_type
+    );
     HRESULT CreateViewWindow2(
-        [in] LPSV2CVW2_PARAMS lpParams);
-
+        [in] LPSV2CVW2_PARAMS view_params
+    );
     HRESULT HandleRename(
-        [in, unique] PCUITEMID_CHILD pidlNew);
-
+        [in] LPCITEMIDLIST new_pidl
+    );
     HRESULT SelectAndPositionItem(
-        [in] PCUITEMID_CHILD pidlItem,
-        [in] UINT uFlags,
-        [in, unique] POINT *ppt);
+        [in] LPCITEMIDLIST item,
+        [in] UINT flags,
+        [in] POINT *point
+    );
 }
 
-
+/*****************************************************************************
+ * IFolderView interface
+ */
 [
-    uuid(ec39fa88-f8af-41c5-8421-38bed28f4673),
+    uuid(cde725b0-ccc9-4519-917e-325d72fab4ce),
     object,
     pointer_default(unique)
 ]
-interface IShellView3 :  IShellView2
-{
-    enum tagSV3CVW3
-    {
-        SV3CVW3_DEFAULT             = 0x00000000,
-        SV3CVW3_NONINTERACTIVE      = 0x00000001,
-        SV3CVW3_FORCEVIEWMODE       = 0x00000002,
-        SV3CVW3_FORCEFOLDERFLAGS    = 0x00000004,
-    };
-    typedef DWORD SV3CVW3_FLAGS;
-
-    HRESULT CreateViewWindow3(
-        [in] IShellBrowser *psbOwner,
-        [in, unique] IShellView *psvPrev,
-        [in] SV3CVW3_FLAGS dwViewFlags,
-        [in] FOLDERFLAGS dwMask,
-        [in] FOLDERFLAGS dwFlags,
-        [in] FOLDERVIEWMODE fvMode,
-        [in, unique] const SHELLVIEWID *pvid,
-        [in] const RECT *prcView,
-        [out] HWND *phwndView);
+interface IFolderView : IUnknown
+{
+    HRESULT GetCurrentViewMode( [out] UINT *mode );
+    HRESULT SetCurrentViewMode( [in] UINT mode );
+    HRESULT GetFolder( [in] REFIID riid, [out, iid_is(riid)] void **ppv );
+    HRESULT Item(
+        [in] int index,
+        [out] PITEMID_CHILD *ppidl
+    );
+    HRESULT ItemCount(
+        [in] UINT flags,
+        [out] int *items
+    );
+    HRESULT Items(
+        [in] UINT flags,
+        [in] REFIID riid,
+        [out, iid_is(riid)] void **ppv
+    );
+    HRESULT GetSelectionMarkedItem( [out] int *item );
+    HRESULT GetFocusedItem( [out] int *item );
+    HRESULT GetItemPosition(
+        [in] PCUITEMID_CHILD pidl,
+        [out] POINT* ppt
+    );
+    HRESULT GetSpacing( [in, out, unique] POINT* pt );
+    HRESULT GetDefaultSpacing( [out] POINT* pt );
+    HRESULT GetAutoArrange();
+    HRESULT SelectItem(
+        [in] int item,
+        [in] DWORD flags
+    );
+    HRESULT SelectAndPositionItems(
+        [in] UINT cidl,
+        [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl,
+        [in, unique, size_is(cidl)] POINT* apt,
+        [in] DWORD flags
+    );
 }
 
-
 /*****************************************************************************
  * IShellBrowser interface
  */
@@ -599,8 +667,18 @@ cpp_quote("#define SBSP_PARENT                0x00002000")
 cpp_quote("#define SBSP_NAVIGATEBACK          0x00004000")
 cpp_quote("#define SBSP_NAVIGATEFORWARD       0x00008000")
 cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE    0x00010000")
+cpp_quote("#define SBSP_KEEPSAMETEMPLATE      0x00020000")
+cpp_quote("#define SBSP_KEEPWORDWHEELTEXT     0x00040000")
+cpp_quote("#define SBSP_ACTIVATE_NOFOCUS      0x00080000")
+cpp_quote("#define SBSP_CREATENOHISTORY       0x00100000")
+cpp_quote("#define SBSP_PLAYNOSOUND           0x00200000")
+cpp_quote("#define SBSP_CALLERUNTURUSTED      0x00800000")
+cpp_quote("#define SBSP_TRUSTFIRSTDOWNLOAD    0x01000000")
+cpp_quote("#define SBSP_UNTRUSTEDFORDOWNLOAD  0x02000000")
 cpp_quote("#define SBSP_NOAUTOSELECT          0x04000000")
 cpp_quote("#define SBSP_WRITENOHISTORY        0x08000000")
+cpp_quote("#define SBSP_TRUSTEDFORACTIVEX     0x10000000")
+cpp_quote("#define SBSP_FEEDNAVIGATION        0x20000000")
 cpp_quote("#define SBSP_REDIRECT              0x40000000")
 cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000")
 
@@ -698,7 +776,7 @@ interface IShellLinkA : IUnknown
     HRESULT GetPath(
         [out, size_is(cch)] LPSTR pszFile,
         [in] int cch,
-        [in, out] WIN32_FIND_DATAA *pfd,
+        [in, out, unique] WIN32_FIND_DATAA *pfd,
         [in] DWORD fFlags);
 
     HRESULT GetIDList( [out] LPITEMIDLIST * ppidl );
@@ -886,7 +964,8 @@ interface IPersistFolder3 : IPersistFolder2
 [
     object,
     uuid(000214eb-0000-0000-c000-000000000046),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface IExtractIconA : IUnknown
 {
@@ -926,7 +1005,8 @@ cpp_quote("#define GIL_DONTCACHE    0x0010")
 [
     object,
     uuid(000214fa-0000-0000-c000-000000000046),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface IExtractIconW : IUnknown
 {
@@ -975,6 +1055,55 @@ cpp_quote("#define CDBOSC_STATECHANGE  0x00000004")
 }
 
 
+/*****************************************************************************
+ * ICommDlgBrowser2 interface
+ */
+[
+ object,
+ uuid(10339516-2894-11D2-9039-00C04F8EEB3E),
+ pointer_default(unique)
+]
+interface ICommDlgBrowser2 : ICommDlgBrowser
+{
+
+    HRESULT Notify(
+        [in] IShellView *ppshv,
+        [in] DWORD dwNotifyType);
+
+    HRESULT GetDefaultMenuText(
+        [in] IShellView *ppshv,
+        [out, string, size_is(cchMax)] LPWSTR pszText,
+        [in] int cchMax);
+
+    HRESULT GetViewFlags(
+        [out] DWORD *pdwFlags);
+}
+
+
+/*****************************************************************************
+ * ICommDlgBrowser3 interface
+ */
+[
+ object,
+ uuid(C8AD25A1-3294-41EE-8165-71174BD01C57),
+ pointer_default(unique)
+]
+interface ICommDlgBrowser3 : ICommDlgBrowser2
+{
+
+    HRESULT OnColumnClicked(
+        [in] IShellView *ppshv,
+        [in] int iColumn);
+
+    HRESULT GetCurrentFilter(
+        [out, string, size_is(cchFileSpec)] LPWSTR pszFileSpec,
+        [in] int cchFileSpec);
+
+    HRESULT OnPreviewCreated(
+        [in] IShellView *ppshv);
+}
+
+
 /*****************************************************************************
  * IDockingWindowFrame interface
  */
@@ -1012,7 +1141,8 @@ cpp_quote("#define DWFAF_HIDDEN           0x0001")
 [
     object,
     uuid(de5bf786-477a-11d2-839d-00c04fd918d0),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface IDragSourceHelper : IUnknown
 {
@@ -1041,7 +1171,8 @@ interface IDragSourceHelper : IUnknown
 [
     object,
     uuid(4657278b-411b-11d2-839a-00c04fd918d0),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface IDropTargetHelper : IUnknown
 {
@@ -1192,7 +1323,8 @@ cpp_quote("#define CMIC_MASK_NOZONECHECKS   SEE_MASK_NOZONECHECKS")
 [
     object,
     uuid(000214f4-0000-0000-c000-000000000046),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface IContextMenu2 : IContextMenu
 {
@@ -1211,7 +1343,8 @@ interface IContextMenu2 : IContextMenu
 [
     object,
     uuid(bcfce0a0-ec17-11d0-8d10-00a0c90f2719),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface IContextMenu3 : IContextMenu2
 {
@@ -1322,7 +1455,8 @@ interface IURLSearchHook : IUnknown
 [
     object,
     uuid(09f656a2-41af-480c-88f7-16cc0d164615),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface ISearchContext : IUnknown
 {
@@ -1370,7 +1504,7 @@ interface INewShortcutHookA : IUnknown
                 [in] LPCSTR pcszReferent,
                 [in] HWND hwnd);
     HRESULT GetReferent(
-                [out] LPCSTR pcszReferent,
+                [out] LPSTR pcszReferent,
                 [in] int cchReferent);
     HRESULT SetFolder(
                 [in] LPCSTR pcszReferent);
@@ -1401,7 +1535,7 @@ interface INewShortcutHookW : IUnknown
                 [in] LPCWSTR pcszReferent,
                 [in] HWND hwnd);
     HRESULT GetReferent(
-                [out] LPCWSTR pcszReferent,
+                [out] LPWSTR pcszReferent,
                 [in] int cchReferent);
     HRESULT SetFolder(
                 [in] LPCWSTR pcszReferent);
@@ -1422,7 +1556,8 @@ interface INewShortcutHookW : IUnknown
 [
     object,
     uuid(85788d00-6807-11d0-b810-00c04fd706ec),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface IRunnableTask : IUnknown
 {
@@ -1439,7 +1574,8 @@ interface IRunnableTask : IUnknown
 [
     object,
     uuid(d82be2b1-5764-11d0-a96e-00c04fd705a2),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface IShellChangeNotify : IUnknown
 {
@@ -1455,7 +1591,8 @@ interface IShellChangeNotify : IUnknown
 [
     object,
     uuid(01e18d10-4d8b-11d2-855d-006008059367),
-    pointer_default(unique)
+    pointer_default(unique),
+    local
 ]
 interface IFileSystemBindData : IUnknown
 {
@@ -1640,44 +1777,6 @@ interface IDeskBand : IDockingWindow
         [in, out] DESKBANDINFO* pdbi);
 }
 
-cpp_quote("#if (NTDDI_VERSION >= NTDDI_LONGHORN)")
-
-/*****************************************************************************
- * IDeskBandInfo interface
- */
-[
-    uuid(77E425FC-CBF9-4307-BA6A-BB5727745661),
-    object,
-]
-interface IDeskBandInfo : IUnknown
-{
-    HRESULT GetDefaultBandWidth(
-        [in] DWORD dwBandID,
-        [in] DWORD dwViewMode,
-        [out] int *pnWidth);
-}
-
-
-/*****************************************************************************
- * IDeskBand2 interface
- */
-[
-    uuid(79D16DE4-ABEE-4021-8D9D-9169B261D657),
-    object,
-]
-interface IDeskBand2 : IDeskBand
-{
-    HRESULT CanRenderComposited([out] BOOL *pfCanRenderComposited);
-
-    HRESULT SetCompositionState([in] BOOL fCompositionEnabled);
-
-    HRESULT GetCompositionState([out] BOOL *pfCompositionEnabled);
-}
-
-cpp_quote("#endif  // NTDDI_LONGHORN")
-
-
-
 cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)")
 
 [
@@ -1868,12 +1967,11 @@ interface IMenuBand : IUnknown
 interface IProfferService : IUnknown
 {
     HRESULT ProfferService(
-               [in] REFGUID rguidService,
-        [in] IServiceProvider *psp,
-        [out] DWORD *pdwCookie);
-    
-    HRESULT RevokeService( 
-        [in] DWORD dwCookie);
+        [in] REFGUID service,
+        [in] IServiceProvider *pService,
+        [out] DWORD *pCookie);
+
+    HRESULT RevokeService([in] DWORD cookie);
 }
 
 /*****************************************************************************
@@ -2193,7 +2291,6 @@ interface ITravelLog : IUnknown
        HRESULT Revert();
 };
 
-
 /*****************************************************************************
  * IShellService interface
  */
@@ -2719,3 +2816,153 @@ interface ITrackShellMenu : IShellMenu
 };
 
 cpp_quote("#endif /* _WIN32_IE_IE60 */")
+
+/*****************************************************************************
+ *    IAutoCompleteDropDown interface
+ */
+[
+    object,
+    uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB),
+    pointer_default(unique)
+]
+interface IAutoCompleteDropDown : IUnknown
+{
+cpp_quote("#define ACDD_VISIBLE   0x0001")
+
+    HRESULT GetDropDownStatus(
+        [out] DWORD *pdwFlags,
+        [out, string] LPWSTR *ppwszString);
+
+    HRESULT ResetEnumerator();
+}
+
+/*****************************************************************************
+ * IExplorerBrowserEvents interface
+ */
+[
+ object,
+ uuid(361BBDC7-E6EE-4E13-BE58-58E2240C810F)
+]
+interface IExplorerBrowserEvents : IUnknown
+{
+    HRESULT OnNavigationPending(
+        [in] PCIDLIST_ABSOLUTE pidlFolder);
+
+    HRESULT OnViewCreated(
+        [in] IShellView *psv);
+
+    HRESULT OnNavigationComplete(
+        [in] PCIDLIST_ABSOLUTE pidlFolder);
+
+    HRESULT OnNavigationFailed(
+        [in] PCIDLIST_ABSOLUTE pidlFolder);
+}
+
+typedef GUID EXPLORERPANE;
+typedef EXPLORERPANE *REFEXPLORERPANE;
+
+cpp_quote("#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility")
+
+/*****************************************************************************
+ * IExplorerPaneVisibility interface
+ */
+[
+ object,
+ uuid(E07010EC-BC17-44C0-97B0-46C7C95B9EDC)
+]
+interface IExplorerPaneVisibility : IUnknown
+{
+    typedef enum tagEXPLORERPANESTATE {
+        EPS_DONTCARE     = 0x0,
+        EPS_DEFAULT_ON   = 0x1,
+        EPS_DEFAULT_OFF  = 0x2,
+        EPS_STATE_MASK   = 0xffff,
+        EPS_INITIALSTATE = 0x10000,
+        EPS_FORCE        = 0x20000
+    } EXPLORERPANESTATE;
+
+    HRESULT GetPaneState(
+        [in] REFEXPLORERPANE ep,
+        [out] EXPLORERPANESTATE *peps);
+}
+
+typedef [v1_enum] enum tagEXPLORER_BROWSER_FILL_FLAGS {
+    EBF_NONE                     = 0,
+    EBF_SELECTFROMDATAOBJECT     = 0x100,
+    EBF_NODROPTARGET             = 0x200
+} EXPLORER_BROWSER_FILL_FLAGS;
+
+typedef [v1_enum] enum tagEXPLORER_BROWSER_OPTIONS {
+    EBO_NONE               = 0x00,
+    EBO_NAVIGATEONCE       = 0x01,
+    EBO_SHOWFRAMES         = 0x02,
+    EBO_ALWAYSNAVIGATE     = 0x04,
+    EBO_NOTRAVELLOG        = 0x08,
+    EBO_NOWRAPPERWINDOW    = 0x10,
+    EBO_HTMLSHAREPOINTVIEW = 0x20
+} EXPLORER_BROWSER_OPTIONS;
+
+cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser")
+
+/*****************************************************************************
+ * IExplorerBrowser interface
+ */
+[
+ object,
+ uuid(DFD3B6B5-C10C-4BE9-85F6-A66969F402F6),
+ pointer_default(unique)
+]
+interface IExplorerBrowser : IUnknown
+{
+
+    [local] HRESULT Initialize(
+        [in] HWND hwndParent,
+        [in] const RECT *prc,
+        [in, unique] const FOLDERSETTINGS *pfs);
+
+    HRESULT Destroy();
+
+    [local] HRESULT SetRect(
+        [in,out,unique] HDWP *phdwp,
+        [in] RECT rcBrowser);
+
+    HRESULT SetPropertyBag(
+        [in, string] LPCWSTR pszPropertyBag);
+
+    HRESULT SetEmptyText(
+        [in, string] LPCWSTR pszEmptyText);
+
+    HRESULT SetFolderSettings(
+        [in] const FOLDERSETTINGS *pfs);
+
+    HRESULT Advise(
+        [in] IExplorerBrowserEvents *psbe,
+        [out] DWORD *pdwCookie);
+
+    HRESULT Unadvise(
+        [in] DWORD dwCookie);
+
+    HRESULT SetOptions(
+        [in] EXPLORER_BROWSER_OPTIONS dwFlag);
+
+    HRESULT GetOptions(
+        [out] EXPLORER_BROWSER_OPTIONS *pdwFlag);
+
+    HRESULT BrowseToIDList(
+        [in] PCUIDLIST_RELATIVE pidl,
+        [in] UINT uFlags);
+
+    HRESULT BrowseToObject(
+        [in] IUnknown *punk,
+        [in] UINT uFlags);
+
+    HRESULT FillFromObject(
+        [in] IUnknown *punk,
+        [in] EXPLORER_BROWSER_FILL_FLAGS dwFlags);
+
+    HRESULT RemoveAll();
+
+    HRESULT GetCurrentView(
+        [in] REFIID riid,
+        [out, iid_is(riid)] IUnknown **ppv);
+}
index 021d467..41aa236 100644 (file)
@@ -35,8 +35,12 @@ typedef struct _ITEMIDLIST
 } ITEMIDLIST,*LPITEMIDLIST;
 typedef const ITEMIDLIST *LPCITEMIDLIST;
 typedef LPITEMIDLIST PITEMID_CHILD;
+typedef const PITEMID_CHILD PCITEMID_CHILD;
 typedef LPCITEMIDLIST PCUITEMID_CHILD;
 typedef LPCITEMIDLIST *PCUITEMID_CHILD_ARRAY;
+typedef LPCITEMIDLIST PCUIDLIST_RELATIVE;
+typedef LPITEMIDLIST PIDLIST_ABSOLUTE;
+typedef LPCITEMIDLIST PCIDLIST_ABSOLUTE;
 cpp_quote("#include <poppack.h>")
 
 #ifndef MAX_PATH
diff --git a/reactos/include/psdk/structuredquerycondition.idl b/reactos/include/psdk/structuredquerycondition.idl
new file mode 100644 (file)
index 0000000..8eb4d51
--- /dev/null
@@ -0,0 +1,53 @@
+/*
+ * structured query condition
+ *
+ * Copyright 2009 Maarten Lankhorst
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ *
+ */
+
+
+import "oaidl.idl";
+import "ocidl.idl";
+import "objidl.idl";
+import "propidl.idl";
+
+typedef [v1_enum] enum tagCONDITION_TYPE
+{
+    CT_AND_CONDITION,
+    CT_OR_CONDITION,
+    CT_NOT_CONDITION,
+    CT_LEAF_CONDITION
+} CONDITION_TYPE;
+
+typedef [v1_enum] enum tagCONDITION_OPERATION
+{
+    COP_IMPLICIT,
+    COP_EQUAL,
+    COP_NOTEQUAL,
+    COP_LESSTHAN,
+    COP_GREATERTHAN,
+    COP_LESSTHANOREQUAL,
+    COP_GREATERTHANOREQUAL,
+    COP_VALUE_STARTSWITH,
+    COP_VALUE_ENDSWITH,
+    COP_VALUE_CONTAINS,
+    COP_VALUE_NOTCONTAINS,
+    COP_DOSWILDCARDS,
+    COP_WORD_EQUAL,
+    COP_WORD_STARTSWITH,
+    COP_APPLICATION_SPECIFIC
+} CONDITION_OPERATION;
diff --git a/reactos/include/psdk/vmr9.idl b/reactos/include/psdk/vmr9.idl
new file mode 100644 (file)
index 0000000..bb3681c
--- /dev/null
@@ -0,0 +1,524 @@
+/*
+ * Copyright 2008 Maarten Lankhorst
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "unknwn.idl";
+
+cpp_quote("#if 0")
+interface IDirect3DSurface9;
+interface IDirect3DDevice9;
+typedef LONGLONG REFERENCE_TIME;
+typedef DWORD D3DFORMAT;
+typedef DWORD D3DPOOL;
+typedef HANDLE HMONITOR;
+typedef struct { char dummy; } AM_MEDIA_TYPE;
+typedef struct { char dummy; } D3DCOLOR;
+cpp_quote("#endif")
+
+interface IVMRSurface9;
+interface IVMRSurfaceAllocator9;
+interface IVMRSurfaceAllocatorEx9;
+interface IVMRSurfaceAllocatorNotify9;
+interface IVMRImagePresenter9;
+interface IVMRImagePresenterConfig9;
+interface IVMRMonitorConfig9;
+interface IVMRWindowlessControl9;
+interface IVMRMixerControl9;
+interface IVMRImageCompositor9;
+interface IVMRMixerBitmap9;
+interface IVMRFilterConfig9;
+interface IVMRAspectRatioControl9;
+interface IVMRVideoStreamControl9;
+
+typedef enum _VMR9PresentationFlags
+{
+    VMR9Sample_SyncPoint = 0x1,
+    VMR9Sample_Preroll = 0x2,
+    VMR9Sample_Discontinuity = 0x4,
+    VMR9Sample_TimeValid = 0x8,
+    VMR9Sample_SrcDstRectsValid = 0x10
+} VMR9PresentationFlags;
+
+typedef struct _VMR9PresentationInfo
+{
+    DWORD dwFlags; /* Flags defined above */
+    IDirect3DSurface9 *lpSurf;
+    REFERENCE_TIME rtStart;
+    REFERENCE_TIME rtEnd;
+    SIZE szAspectRatio;
+    RECT rcSrc;
+    RECT rcDst;
+    DWORD dwReserved1;
+    DWORD dwReserved2;
+} VMR9PresentationInfo;
+
+[
+    local,
+    object,
+    uuid(69188c61-12a3-40f0-8ffc-342e7b433fd7),
+    helpstring("IVMRImagePresenter9 interface"),
+    pointer_default(unique)
+]
+interface IVMRImagePresenter9 : IUnknown
+{
+    HRESULT StartPresenting([in] DWORD_PTR id);
+    HRESULT StopPresenting([in] DWORD_PTR id);
+    HRESULT PresentImage([in] DWORD_PTR id, [in] VMR9PresentationInfo *info);
+};
+
+typedef enum _VMR9SurfaceAllocationFlags
+{
+    VMR9AllocFlag_3DRenderTarget = 0x1,
+    VMR9AllocFlag_DXVATarget = 0x2,
+    VMR9AllocFlag_TextureSurface = 0x4,
+    VMR9AllocFlag_OffscreenSurface = 0x8,
+    VMR9AllocFlag_RGBDynamicSwitch = 0x10,
+    VMR9AllocFlag_UsageReserved = 0xe0,
+    VMR9AllocFlag_UsageMask = 0xff,
+} VMR9SurfaceAllocationFlags;
+
+typedef struct _VMR9AllocationInfo
+{
+    DWORD dwFlags; /* Flags defined above */
+    DWORD dwWidth;
+    DWORD dwHeight;
+    D3DFORMAT Format;
+    D3DPOOL Pool;
+    DWORD MinBuffers;
+    SIZE szAspectRatio;
+    SIZE szNativeSize;
+} VMR9AllocationInfo;
+
+[
+    local,
+    object,
+    uuid(8d5148ea-3f5d-46cf-9df1-d1b896eedb1f),
+    helpstring("IVMRSurfaceAllocator9 interface"),
+    pointer_default(unique)
+]
+interface IVMRSurfaceAllocator9 : IUnknown
+{
+    HRESULT InitializeDevice([in] DWORD_PTR id, [in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers);
+    HRESULT TerminateDevice([in] DWORD_PTR id);
+    HRESULT GetSurface([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface);
+    HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify9 *allocnotify);
+};
+
+[
+    local,
+    object,
+    uuid(6de9a68a-a928-4522-bf57-655ae3866456),
+    helpstring("IVMRSurfaceAllocatorEx9 interface"),
+    pointer_default(unique)
+]
+interface IVMRSurfaceAllocatorEx9 : IVMRSurfaceAllocator9
+{
+    HRESULT GetSurfaceEx([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface, [out] RECT *dest);
+};
+
+[
+    local,
+    object,
+    uuid(dca3f5df-bb3a-4d03-bd81-84614bfbfa0c),
+    helpstring("IVMRSurfaceAllocatorNotify9 interface"),
+    pointer_default(unique)
+]
+interface IVMRSurfaceAllocatorNotify9 : IUnknown
+{
+    HRESULT AdviseSurfaceAllocator([in] DWORD_PTR id, [in] IVMRSurfaceAllocator9 *alloc);
+    HRESULT SetD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
+    HRESULT ChangeD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
+    HRESULT AllocateSurfaceHelper([in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers, [out] IDirect3DSurface9 **surface);
+    HRESULT NotifyEvent([in] LONG code, [in] LONG_PTR param1, [in] LONG_PTR param2);
+};
+
+typedef enum _VMR9AspectRatioMode
+{
+    VMR9ARMode_None,
+    VMR9ARMode_LetterBox
+} VMR9AspectRatioMode;
+
+[
+    local,
+    object,
+    uuid(8f537d09-f85e-4414-b23b-502e54c79927),
+    helpstring("IVMRWindowlessControl interface"),
+    pointer_default(unique)
+]
+interface IVMRWindowlessControl9 : IUnknown
+{
+    HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *arwidth, [out] LONG *arheight);
+    HRESULT GetMinIdealVideoSize([out] LONG *width, [out] LONG *height);
+    HRESULT GetMaxIdealVideoSize([out] LONG *width, [out] LONG *height);
+    HRESULT SetVideoPosition([in] const RECT *source, [in] const RECT *dest);
+    HRESULT GetVideoPosition([out] RECT *source, [out] RECT *dest);
+    HRESULT GetAspectRatioMode([out] DWORD *mode);
+    HRESULT SetAspectRatioMode([in] DWORD mode);
+    HRESULT SetVideoClippingWindow([in] HWND hwnd);
+    HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc);
+    HRESULT DisplayModeChanged();
+    HRESULT GetCurrentImage([out] BYTE **dib);
+    HRESULT SetBorderColor([in] COLORREF color);
+    HRESULT GetBorderColor([out] COLORREF *color);
+};
+
+typedef enum _VMR9MixerPrefs
+{
+    /* Decimation */
+    MixerPref9_NoDecimation = 0x1,
+    MixerPref9_DecimateOutput = 0x2,
+    MixerPref9_ARAdjustXorY = 0x4,
+    MixerPref9_NonSquareMixing = 0x8,
+    MixerPref9_DecimateMask = 0xf,
+
+    /* Filtering */
+    MixerPref9_BiLinearFiltering = 0x10,
+    MixerPref9_PointFiltering = 0x20,
+    MixerPref9_AnisotropicFiltering = 0x40,
+    MixerPref9_PyramidalQuadFiltering = 0x80,
+    MixerPref9_GaussianQuadFiltering = 0x100,
+    MixerPref9_FilteringReserved = 0xe00,
+    MixerPref9_FilteringMask = 0xff0,
+
+    /* Render target */
+    MixerPref9_RenderTargetRGB = 0x1000,
+    MixerPref9_RenderTargetYUV = 0x2000,
+    MixerPref9_RenderTargetReserved = 0xfc000,
+
+    MixerPref9_DynamicSwitchToBOB = 0x100000,
+    MixerPref9_DynamicDecimateBy2 = 0x200000,
+    MixerPref9_DynamicReserved = 0xc00000,
+    MixerPref9_DynamicMask = 0xf00000,
+} VMR9MixerPrefs;
+
+typedef struct _VMR9NormalizedRect
+{
+    FLOAT left;
+    FLOAT top;
+    FLOAT right;
+    FLOAT bottom;
+} VMR9NormalizedRect;
+
+typedef enum _VMR9ProcAmpControlFlags
+{
+    ProcAmpControl9_Brightness = 0x1,
+    ProcAmpControl9_Contrast = 0x2,
+    ProcAmpControl9_Hue = 0x4,
+    ProcAmpControl9_Saturation = 0x8,
+    ProcAmpControl9_Mask = 0xf
+} VMR9ProcAmpControlFlags;
+
+typedef struct _VMR9ProcAmpControl
+{
+    DWORD dwSize;
+    DWORD dwFlags;
+    FLOAT Brightness;
+    FLOAT Contrast;
+    FLOAT Hue;
+    FLOAT Saturation;
+} VMR9ProcAmpControl;
+
+typedef struct _VMR9ProcAmpControlRange
+{
+    DWORD dwSize;
+    VMR9ProcAmpControlFlags dwProperty;
+    FLOAT MinValue;
+    FLOAT MaxValue;
+    FLOAT DefaultValue;
+    FLOAT StepSize;
+} VMR9ProcAmpControlRange;
+
+[
+    local,
+    object,
+    uuid(1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b),
+    helpstring("IVMRMixerControl9 interface"),
+    pointer_default(unique)
+]
+interface IVMRMixerControl9 : IUnknown
+{
+    HRESULT SetAlpha([in] DWORD streamid, [in] FLOAT alpha);
+    HRESULT GetAlpha([in] DWORD streamid, [out] FLOAT *alpha);
+    HRESULT SetZOrder([in] DWORD streamid, [in] DWORD zorder);
+    HRESULT GetZOrder([in] DWORD streamid, [out] DWORD *zorder);
+    HRESULT SetOutputRect([in] DWORD streamid, [in] const VMR9NormalizedRect *rect);
+    HRESULT GetOutputRect([in] DWORD streamid, [out] VMR9NormalizedRect *rect);
+    HRESULT SetBackgroundClr([in] COLORREF back);
+    HRESULT GetBackgroundClr([out] COLORREF *back);
+    HRESULT SetMixingPrefs([in] DWORD mixingprefs);
+    HRESULT GetMixingPrefs([out] DWORD *mixingprefs);
+    HRESULT SetProcAmpControl([in] DWORD streamid, [in] VMR9ProcAmpControl *control);
+    HRESULT GetProcAmpControl([in] DWORD streamid, [in, out] VMR9ProcAmpControl *control);
+    HRESULT GetProcAmpControlRange([in] DWORD streamid, [in, out] VMR9ProcAmpControlRange *controlrange);
+};
+
+typedef struct _VMR9AlphaBitmap
+{
+    DWORD dwFlags;
+    HDC hdc;
+    IDirect3DSurface9 *pDDS;
+    RECT rSrc;
+    VMR9NormalizedRect *rDest;
+    FLOAT fAlpha;
+    COLORREF clrSrcKey;
+    DWORD dwFilterMode;
+} VMR9AlphaBitmap;
+
+typedef enum _VMR9AlphaBitmapFlags
+{
+    VMR9AlphaBitmap_Disable = 0x1,
+    VMR9AlphaBitmap_hDC = 0x2,
+    VMR9AlphaBitmap_EntireDDS = 0x4,
+    VMR9AlphaBitmap_SrcColorKey = 0x8,
+    VMR9AlphaBitmap_SrcRect = 0x10,
+    VMR9AlphaBitmap_FilterMode = 0x20
+} VMR9AlphaBitmapFlags;
+
+[
+    local,
+    object,
+    uuid(ced175e5-1935-4820-81bd-ff6ad00c9108),
+    helpstring("IVMRMixerBitmap interface"),
+    pointer_default(unique)
+]
+interface IVMRMixerBitmap9 : IUnknown
+{
+    HRESULT SetAlphaBitmap([in] const VMR9AlphaBitmap *bitmap);
+    HRESULT UpdateAlphaBitmapParameters([in] const VMR9AlphaBitmap *bitmap);
+    HRESULT GetAlphaBitmapParameters([out] VMR9AlphaBitmap *bitmap);
+};
+
+[
+    local,
+    object,
+    uuid(dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc),
+    helpstring("IVMRSurface interface"),
+    pointer_default(unique)
+]
+interface IVMRSurface9 : IUnknown
+{
+    HRESULT IsSurfaceLocked();
+    HRESULT LockSurface([out] BYTE **surface);
+    HRESULT UnlockSurface();
+    HRESULT GetSurface([out] IDirect3DSurface9 **surface);
+};
+
+typedef enum _VMR9RenderPrefs
+{
+   RenderPrefs9_DoNotRenderBorder = 0x1,
+   RenderPrefs9_Mask = 0x1
+} VMR9RenderPrefs;
+
+[
+    local,
+    object,
+    uuid(45c15cab-6e22-420a-8043-ae1f0ac02c7d),
+    helpstring("IVMRImagePresenterConfig9 interface"),
+    pointer_default(unique)
+]
+interface IVMRImagePresenterConfig9 : IUnknown
+{
+    HRESULT SetRenderingPrefs([in] DWORD renderflags);
+    HRESULT GetRenderingPrefs([out] DWORD *renderflags);
+};
+
+[
+    local,
+    object,
+    uuid(d0cfe38b-93e7-4772-8957-0400c49a4485),
+    helpstring("IVMRMixerStreamConfig interface"),
+    pointer_default(unique)
+]
+interface IVMRVideoStreamControl9: IUnknown
+{
+    HRESULT SetStreamActiveState([in] BOOL active);
+    HRESULT GetStreamActiveState([out] BOOL *active);
+};
+
+typedef enum _VMR9Mode
+{
+    VMR9Mode_Windowed = 0x1,
+    VMR9Mode_Windowless = 0x2,
+    VMR9Mode_Renderless = 0x4,
+    VMR9Mode_Mask = 0x7
+} VMR9Mode;
+
+[
+    local,
+    object,
+    uuid(5a804648-4f66-4867-9c43-4f5c822cf1b8),
+    helpstring("IVMRFilterConfig9 interface"),
+    pointer_default(unique)
+]
+interface IVMRFilterConfig9 : IUnknown
+{
+    HRESULT SetImageCompositor([in] IVMRImageCompositor9 *compositor);
+    HRESULT SetNumberOfStreams([in] DWORD max);
+    HRESULT GetNumberOfStreams([out] DWORD *max);
+    HRESULT SetRenderingPrefs([in] DWORD renderflags);
+    HRESULT GetRenderingPrefs([out] DWORD *renderflags);
+    HRESULT SetRenderingMode([in] DWORD mode);
+    HRESULT GetRenderingMode([out] DWORD *mode);
+};
+
+[
+    local,
+    object,
+    uuid(00d96c29-bbde-4efc-9901-bb5036392146),
+    helpstring("IVMRAspectRatioControl9 interface"),
+    pointer_default(unique)
+]
+interface IVMRAspectRatioControl9 : IUnknown
+{
+    HRESULT GetAspectRatioMode([out] DWORD *mode);
+    HRESULT SetAspectRatioMode([in] DWORD mode);
+}
+
+#define VMR9DEVICENAMELEN 32
+#define VMR9DEVICEDESCRIPTIONLEN 512
+
+typedef struct _VMR9MonitorInfo
+{
+    UINT uDevID;
+    RECT rcMonitor;
+    HMONITOR hMon;
+    DWORD dwFlags;
+    WCHAR szDevice[VMR9DEVICENAMELEN];
+    WCHAR szDescription[VMR9DEVICEDESCRIPTIONLEN];
+    LARGE_INTEGER liDriverVersion;
+    DWORD dwVendorId;
+    DWORD dwDeviceId;
+    DWORD dwSubSysId;
+    DWORD dwRevision;
+} VMR9MonitorInfo;
+
+[
+    local,
+    object,
+    uuid(46c2e457-8ba0-4eef-b80b-0680f0978749),
+    helpstring("IVMRMonitorConfig9 interface"),
+    pointer_default(unique)
+]
+interface IVMRMonitorConfig9 : IUnknown
+{
+    HRESULT SetMonitor([in] UINT uDev);
+    HRESULT GetMonitor([out] UINT *uDev);
+    HRESULT SetDefaultMonitor([in] UINT uDev);
+    HRESULT GetDefaultMonitor([out] UINT *uDev);
+    HRESULT GetAvailableMonitors([out, size_is(arraysize)] VMR9MonitorInfo *info, [in] DWORD arraysize, [out] DWORD *numdev);
+};
+
+typedef enum _VMR9DeinterlacePrefs
+{
+    DeinterlacePref9_NextBest = 0x1,
+    DeinterlacePref9_BOB = 0x2,
+    DeinterlacePref9_Weave = 0x4,
+    DeinterlacePref9_Mask = 0x7
+} VMR9DeinterlacePrefs;
+
+typedef enum _VMR9DeinterlaceTech
+{
+    DeinterlaceTech9_Unknown = 0,
+    DeinterlaceTech9_BOBLineReplicate = 0x1,
+    DeinterlaceTech9_BOBVerticalStretch = 0x2,
+    DeinterlaceTech9_MedianFiltering = 0x4,
+    DeinterlaceTech9_EdgeFiltering = 0x10,
+    DeinterlaceTech9_FieldAdaptive = 0x20,
+    DeinterlaceTech9_PixelAdaptive = 0x40,
+    DeinterlaceTech9_MotionVectorSteered = 0x80
+} VMR9DeinterlaceTech;
+
+typedef struct _VMR9Frequency
+{
+    DWORD dwNumerator;
+    DWORD dwDenominator;
+} VMR9Frequency;
+
+typedef enum _VMR9_SampleFormat
+{
+    VMR9_SampleReserved = 1,
+    VMR9_SampleProgressiveFrame = 2,
+    VMR9_SampleFieldInterleavedEvenFirst = 3,
+    VMR9_SampleFieldInterleavedOddFirst = 4,
+    VMR9_SampleFieldSingleEven = 5,
+    VMR9_SampleFieldSingleOdd = 6,
+} VMR9_SampleFormat;
+
+typedef struct _VMR9VideoDesc
+{
+    DWORD dwSize;
+    DWORD dwSampleWidth;
+    DWORD dwSampleHeight;
+    VMR9_SampleFormat SampleFormat;
+    DWORD dwFourCC;
+    VMR9Frequency InputSampleFreq;
+    VMR9Frequency OutputFrameFreq;
+} VMR9VideoDesc;
+
+typedef struct _VMR9DeinterlaceCaps {
+    DWORD dwSize;
+    DWORD dwNumPreviousOutputFrames;
+    DWORD dwNumForwardRefSamples;
+    DWORD dwNumBackwardRefSamples;
+    VMR9DeinterlaceTech DeinterlaceTechnology;
+} VMR9DeinterlaceCaps;
+
+[
+    local,
+    object,
+    uuid(a215fb8d-13c2-4f7f-993c-003d6271a459),
+    helpstring("IVMRDeinterlaceControl9 interface"),
+    pointer_default(unique)
+]
+interface IVMRDeinterlaceControl9 : IUnknown
+{
+    HRESULT GetNumberOfDeinterlaceModes([in] VMR9VideoDesc *desc, [in, out] DWORD *nummodes, [out] GUID *modes);
+    HRESULT GetDeinterlaceModeCaps([in] GUID *mode, [in] VMR9VideoDesc *desc, [out] VMR9DeinterlaceCaps *caps);
+    HRESULT GetDeinterlaceMode([in] DWORD streamid, [out] GUID *mode);
+    HRESULT SetDeinterlaceMode([in] DWORD streamid, [in] GUID *mode);
+    HRESULT GetDeinterlacePrefs([out] DWORD *prefs);
+    HRESULT SetDeinterlacePrefs([in] DWORD prefs);
+    HRESULT GetActualDeinterlaceMode([in] DWORD streamid, [out] GUID *mode);
+};
+
+typedef struct _VMR9VideoStreamInfo {
+    IDirect3DSurface9 *pddsVideoSurface;
+    DWORD dwWidth;
+    DWORD dwHeight;
+    DWORD dwStrmID;
+    FLOAT fAlpha;
+    VMR9NormalizedRect rNormal;
+    REFERENCE_TIME rtStart;
+    REFERENCE_TIME rtEnd;
+    VMR9_SampleFormat SampleFormat;
+} VMR9VideoStreamInfo;
+
+[
+    local,
+    object,
+    uuid(4a5c89eb-df51-4654-ac2a-e48e02bbabf6),
+    helpstring("IVMRImageCompositor9 interface"),
+    pointer_default(unique)
+]
+interface IVMRImageCompositor9 : IUnknown
+{
+    HRESULT InitCompositionDevice([in] IUnknown *d3ddev);
+    HRESULT TermCompositionDevice([in] IUnknown *d3ddev);
+    HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirect3DSurface9 *d3dtarget, [in] AM_MEDIA_TYPE *mttarget,
+                           [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop, D3DCOLOR back,
+                           [in] VMR9VideoStreamInfo *info, [in] UINT streams);
+};
diff --git a/reactos/include/psdk/vmrender.idl b/reactos/include/psdk/vmrender.idl
new file mode 100644 (file)
index 0000000..3c3fd7b
--- /dev/null
@@ -0,0 +1,481 @@
+/*
+ * Copyright (C) 2008 Maarten Lankhorst
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+cpp_quote("#if 0")
+typedef DWORD IDirectDrawSurface7;
+typedef DWORD IDirectDraw7;
+typedef DWORD *LPBITMAPINFOHEADER;
+typedef DWORD *LPDDPIXELFORMAT;
+typedef struct { DWORD dw1, dw2; } DDCOLORKEY;
+cpp_quote("#endif")
+cpp_quote("#include <ddraw.h>")
+
+interface IVMRSurface;
+interface IVMRSurfaceAllocator;
+interface IVMRSurfaceAllocatorNotify;
+interface IVMRImagePresenter;
+interface IVMRImagePresenterNotify;
+interface IVMRWindowlessControl;
+interface IVMRMixerControl;
+interface IVMRMixerBitmap;
+interface IVMRFilterConfig;
+interface IVMRAspectRatioControl;
+interface IVMRDeinterlaceControl;
+interface IVMRMonitorConfig;
+interface IVMRImageCompositor;
+interface IVMRVideoStreamControl;
+
+typedef enum _VMRPresentationFlags
+{
+    VMRSample_SyncPoint = 0x01,
+    VMRSample_Preroll = 0x02,
+    VMRSample_Discontinuity = 0x04,
+    VMRSample_TimeValid = 0x08,
+    VMRSample_SrcDstRectsValid = 0x10
+} VMRPresentationFlags;
+
+typedef struct tagVMRPRESENTATIONINFO
+{
+    DWORD dwFlags;
+    IDirectDrawSurface7 *lpSurf;
+    REFERENCE_TIME rtStart, rtEnd;
+    SIZE szAspectRatio;
+    RECT rcSrc, rcDst;
+    DWORD dwTypeSpecificFlags;
+    DWORD dwInterlaceFlags;
+} VMRPRESENTATIONINFO;
+
+[
+    local,
+    object,
+    uuid(ce704fe7-e71e-41fb-baa2-c4403e1182f5),
+    helpstring("IVMRImagePresenter interface"),
+    pointer_default(unique)
+]
+interface IVMRImagePresenter : IUnknown
+{
+    HRESULT StartPresenting([in] DWORD_PTR id);
+    HRESULT StopPresenting([in] DWORD_PTR id);
+    HRESULT PresentImage([in] DWORD_PTR id, [in] VMRPRESENTATIONINFO *info);
+};
+
+typedef enum _VMRSurfaceAllocationFlags
+{
+    AMAP_PIXELFORMAT_VALID = 0x01,
+    AMAP_3D_TARGET = 0x02,
+    AMAP_ALLOW_SYSMEM = 0x04,
+    AMAP_FORCE_SYSMEM = 0x08,
+    AMAP_DIRECTED_FLIP = 0x10,
+    AMAP_DXVA_TARGET = 0x20
+} VMRSurfaceAllocationFlags;
+
+typedef struct tagVMRALLOCATIONINFO
+{
+    DWORD dwFlags;
+    LPBITMAPINFOHEADER lpHdr;
+    LPDDPIXELFORMAT lpPixFmt;
+    SIZE szAspectRatio;
+    DWORD dwMinBuffers;
+    DWORD dwMaxBuffers;
+    DWORD dwInterlaceFlags;
+    SIZE szNativeSize;
+} VMRALLOCATIONINFO;
+
+[
+    local,
+    object,
+    uuid(31ce832e-4484-458b-8cca-f4d7e3db0b52),
+    helpstring("IVMRSurfaceAllocator interface"),
+    pointer_default(unique)
+]
+interface IVMRSurfaceAllocator : IUnknown
+{
+    HRESULT AllocateSurface([in] DWORD_PTR id, [in] VMRALLOCATIONINFO *allocinfo, [in, out] DWORD *buffers, IDirectDrawSurface7 **surface);
+    HRESULT FreeSurface([in] DWORD_PTR id);
+    HRESULT PrepareSurface([in] DWORD_PTR id, [in] IDirectDrawSurface7 *surface, [in] DWORD dwSurfaceFlags);
+    HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify *notify);
+};
+
+[
+    local,
+    object,
+    uuid(aada05a8-5a4e-4729-af0b-cea27aed51e2),
+    helpstring("IVMRSurfaceAllocatorNotify interface"),
+    pointer_default(unique)
+]
+interface IVMRSurfaceAllocatorNotify : IUnknown
+{
+    HRESULT AdviseSurfaceAllocator([in] DWORD_PTR id, [in] IVMRSurfaceAllocator *allocator);
+    HRESULT SetDDrawDevice([in] IDirectDraw7 *device, [in] HMONITOR monitor);
+    HRESULT ChangeDDrawDevice([in] IDirectDraw7 *device, [in] HMONITOR monitor);
+    HRESULT RestoreDDrawSurfaces();
+    HRESULT NotifyEvent([in] LONG EventCode, [in] LONG_PTR p1, [in] LONG_PTR p2);
+    HRESULT SetBorderColor([in] COLORREF border);
+};
+
+typedef enum _VMR_ASPECT_RATIO_MODE
+{
+    VMR_ARMODE_NONE,
+    VMR_ARMODE_LETTER_BOX
+} VMR_ASPECT_RATIO_MODE;
+
+[
+    local,
+    object,
+    uuid(0eb1088c-4dcd-46f0-878f-39dae86a51b7),
+    helpstring("IVMRWindowlessControl interface"),
+    pointer_default(unique)
+]
+interface IVMRWindowlessControl : IUnknown
+{
+    HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *ar_width, [out] LONG *ar_height);
+    HRESULT GetMinIdealVideoSize([out] LONG *width, [out] LONG *height);
+    HRESULT GetMaxIdealVideoSize([out] LONG *width, [out] LONG *height);
+    HRESULT SetVideoPosition([in] const RECT *src_rect, [in] const RECT *dst_rect);
+    HRESULT GetVideoPosition([out] RECT *src_rect, [out] RECT *dst_rect);
+    HRESULT GetAspectRatioMode([out] DWORD *mode);
+    HRESULT SetAspectRatioMode([in] DWORD mode);
+    HRESULT SetVideoClippingWindow([in] HWND hwnd);
+    HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc);
+    HRESULT DisplayModeChanged();
+    HRESULT GetCurrentImage([out] BYTE **data);
+    HRESULT SetBorderColor([in] COLORREF border);
+    HRESULT GetBorderColor([out] COLORREF *border);
+    HRESULT SetColorKey([in] COLORREF key);
+    HRESULT GetColorKey([out] COLORREF *key);
+};
+
+typedef enum _VMRMixerPrefs
+{
+    MixerPref_NoDecimation = 0x0001,
+    MixerPref_DecimateOutput = 0x0002,
+    MixerPref_ARAdjustXorY = 0x0004,
+    MixerPref_DecimationReserved = 0x0008,
+    MixerPref_DecimateMask = 0x000f,
+
+    MixerPref_BiLinearFiltering = 0x0010,
+    MixerPref_PointFiltering = 0x0020,
+    MixerPref_FinteringMask = 0x00f0,
+
+    MixerPref_RenderTargetRGB = 0x0100,
+    MixerPref_RenderTargetYUV = 0x1000,
+    MixerPref_RenderTargetYUV420 = 0x0200,
+    MixerPref_RenderTargetYUV422 = 0x0400,
+    MixerPref_RenderTargetYUV444 = 0x0800,
+    MixerPref_RenderTargetReserved = 0xe000,
+    MixerPref_RenderTargetMask = 0xff00,
+
+    MixerPref_DynamicSwitchToBOB = 0x10000,
+    MixerPref_DynamicDecimateBy2 = 0x20000,
+    MixerPref_DynamicReserved = 0xc0000,
+    MixerPref_DynamicMask = 0xf0000
+} VMRMixerPrefs;
+
+typedef struct _NORMALIZEDRECT
+{
+    FLOAT left, top, right, bottom;
+} NORMALIZEDRECT;
+
+[
+    local,
+    object,
+    uuid(1c1a17b0-bed0-415d-974b-dc6696131599),
+    helpstring("IVMRMixerControl interface"),
+    pointer_default(unique)
+]
+interface IVMRMixerControl : IUnknown
+{
+    HRESULT SetAlpha([in] DWORD id, [in] FLOAT alpha);
+    HRESULT GetAlpha([in] DWORD id, [out] FLOAT *alpha);
+    HRESULT SetZOrder([in] DWORD id, [in] DWORD z);
+    HRESULT GetZOrder([in] DWORD id, [out] DWORD *z);
+    HRESULT SetOutputRect([in] DWORD id, [in] const NORMALIZEDRECT *rect);
+    HRESULT SetBackgroundClr([in] COLORREF background);
+    HRESULT GetBackgroundClr([out] COLORREF *background);
+    HRESULT SetMixingPrefs([in] DWORD prefs);
+    HRESULT GetMixingPrefs([out] DWORD *prefs);
+};
+
+typedef struct tagVMRGUID
+{
+    struct _GUID *pGUID, GUID;
+} VMRGUID;
+
+#define VMRDEVICENAMELEN 32
+#define VMRDEVICEDESCRIPTIONLEN 256
+
+typedef struct tagVMRMONITORINFO
+{
+    VMRGUID guid;
+    RECT rcMonitor;
+    HMONITOR hMon;
+    DWORD dwFlags;
+    WCHAR szDevice[VMRDEVICENAMELEN];
+    WCHAR szDescription[VMRDEVICEDESCRIPTIONLEN];
+    LARGE_INTEGER liDriverVersion;
+    DWORD dwVendorId;
+    DWORD dwDeviceId;
+    DWORD dwSubSysId;
+    DWORD dwRevision;
+} VMRMONITORINFO;
+
+[
+    local,
+    object,
+    uuid(9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce),
+    helpstring("IVMRMonitorConfig interface"),
+    pointer_default(unique)
+]
+interface IVMRMonitorConfig : IUnknown
+{
+    HRESULT SetMonitor([in] const VMRGUID *vmrguid);
+    HRESULT GetMonitor([out] VMRGUID *vmrguid);
+    HRESULT SetDefaultMonitor([in] const VMRGUID *vmrguid);
+    HRESULT GetDefaultMonitor([out] VMRGUID *vmrguid);
+    HRESULT GetAvailableMonitors([out, size_is(array_size)] VMRMONITORINFO *info, [in] DWORD array_size, [out] DWORD *retrieved);
+}
+
+typedef enum _VMRRenderPrefs
+{
+    RenderPrefs_RestrictToInitialMonitor = 0x00,
+    RenderPrefs_ForceOffScreen = 0x01,
+    RenderPrefs_ForceOverlays = 0x02,
+    RenderPrefs_AllowOverlays = 0x00,
+    RenderPrefs_AllowOffscreen = 0x00,
+    RenderPrefs_DoNotRenderColorKeyAndBorder = 0x08,
+    RenderPrefs_Reserved = 0x10,
+    RenderPrefs_PreferAGPMemWhenMixing = 0x20,
+    RenderPrefs_Mask = 0x3f
+} VMRRenderPrefs;
+
+typedef enum _VMRMode
+{
+    VMRMode_Windowed = 0x1,
+    VMRMode_Windowless = 0x2,
+    VMRMode_Renderless = 0x4,
+    VMRMode_Mask = 0x7
+} VMRMode;
+
+enum { MAX_NUMBER_OF_STREAMS = 16 };
+
+[
+    local,
+    object,
+    uuid(9e5530c5-7034-48b4-bb46-0b8a6efc8e36),
+    helpstring("IVMRFilterConfig interface"),
+    pointer_default(unique)
+]
+interface IVMRFilterConfig : IUnknown
+{
+    HRESULT SetImageCompositor([in] IVMRImageCompositor *compositor);
+    HRESULT SetNumberOfStreams([in] DWORD streams);
+    HRESULT GetNumberOfStreams([out] DWORD *streams);
+    HRESULT SetRenderingPrefs([in] DWORD prefs);
+    HRESULT GetRenderingPrefs([out] DWORD *prefs);
+    HRESULT SetRenderingMode([in] DWORD mode);
+    HRESULT GetRenderingMode([out] DWORD *mode);
+};
+
+[
+    local,
+    object,
+    uuid(ede80b5c-bad6-4623-b537-65586c9f8dfd),
+    helpstring("IVMRAspectRatioControl interface"),
+    pointer_default(unique)
+]
+interface IVMRAspectRatioControl : IUnknown
+{
+    HRESULT GetAspectRatioMode([out] DWORD *armode);
+    HRESULT SetAspectRatioMode([in] DWORD armode);
+};
+
+typedef enum _VMRDeinterlacePrefs
+{
+    DeinterlacePref_NextBest = 0x1,
+    DeinterlacePref_BOB = 0x2,
+    DeinterlacePref_Weave = 0x4,
+    DeinterlacePref_Mask = 0x7
+} VMRDeinterlacePrefs;
+
+typedef enum _VMRDeinterlaceTech
+{
+    DeinterlaceTech_Unknown = 0x00,
+    DeinterlaceTech_BOBLineReplicate = 0x01,
+    DeinterlaceTech_BOBVerticalStretch = 0x02,
+    DeinterlaceTech_MedianFiltering = 0x04,
+    DeinterlaceTech_EdgeFiltering = 0x08,
+    DeinterlaceTech_FieldAdaptive = 0x10,
+    DeinterlaceTech_PixelAdaptive = 0x20,
+    DeinterlaceTech_MotionVectorSteered = 0x80
+} VMRDeinterlaceTech;
+
+typedef struct _VMRFrequency
+{
+    DWORD dwNumerator, dwDenominator;
+} VMRFrequency;
+
+typedef struct _VMRVideoDesc
+{
+    DWORD dwSize;
+    DWORD dwSampleWidth;
+    DWORD dwSampleHeight;
+    BOOL SingleFieldPerSample;
+    DWORD dwFourCC;
+    VMRFrequency InputSampleFreq;
+    VMRFrequency OutputFrameFreq;
+} VMRVideoDesc;
+
+typedef struct _VMRDeinterlaceCaps
+{
+    DWORD dwSize;
+    DWORD dwNumPreviousOutputFrames;
+    DWORD dwNumForwardRefSamples;
+    DWORD dwNumBackwardRefSamples;
+    VMRDeinterlaceTech DeinterlaceTechnology;
+} VMRDeinterlaceCaps;
+
+[
+    local,
+    object,
+    uuid(bb057577-0db8-4e6a-87a7-1a8c9a505a0f),
+    helpstring("IVMRDeinterlaceControl interface"),
+    pointer_default(unique)
+]
+interface IVMRDeinterlaceControl : IUnknown
+{
+    HRESULT GetNumberOfDeinterlaceModes([in] VMRVideoDesc *desc, [in, out] DWORD *num_modes, [out] GUID *modes);
+    HRESULT GetDeinterlaceModeCaps([in] GUID *mode, [in] VMRVideoDesc *desc, [in, out] VMRDeinterlaceCaps *caps);
+    HRESULT GetDeinterlaceMode([in] DWORD id, [out] GUID *mode);
+    HRESULT SetDeinterlaceMode([in] DWORD id, [in] GUID *mode);
+    HRESULT GetDeinterlacePrefs([out] DWORD *prefs);
+    HRESULT SetDeinterlacePrefs([in] DWORD prefs);
+    HRESULT GetActualDeinterlaceMode([in] DWORD id, [out] GUID *mode);
+};
+
+typedef struct _VMRALPHABITMAP
+{
+    DWORD dwFlags;
+    HDC hdc;
+    IDirectDrawSurface7 *pDDS;
+    RECT rSrc;
+    RECT rDest;
+    FLOAT fAlpha;
+    COLORREF clrSrcKey;
+} VMRALPHABITMAP, *PVMRALPHABITMAP;
+
+cpp_quote("#define VMRBITMAP_DISABLE (0x01)")
+cpp_quote("#define VMRBITMAP_HDC (0x02)")
+cpp_quote("#define VMRBITMAP_ENTIREDDS (0x04)")
+cpp_quote("#define VMRBITMAP_SRCCOLORKEY (0x08)")
+cpp_quote("#define VMRBITMAP_SRCRECT (0x10)")
+
+[
+    local,
+    object,
+    uuid(1e673275-0257-40aa-af20-7c608d4a0428),
+    helpstring("IVMRMixerBitmap interface"),
+    pointer_default(unique)
+]
+interface IVMRMixerBitmap : IUnknown
+{
+    HRESULT SetAlphaBitmap([in] const VMRALPHABITMAP *params);
+    HRESULT UpdateAlphaBitmapParameters([in] VMRALPHABITMAP *params);
+    HRESULT GetAlphaBitmapParameters([out] VMRALPHABITMAP *params);
+};
+
+typedef struct _VMRVIDEOSTREAMINFO
+{
+    IDirectDrawSurface7 *pddsVideoSurface;
+    DWORD dwWidth;
+    DWORD dwHeight;
+    DWORD dwStrmID;
+    FLOAT fAlpha;
+    DDCOLORKEY ddClrKey;
+    NORMALIZEDRECT rNormal;
+} VMRVIDEOSTREAMINFO;
+
+[
+    local,
+    object,
+    uuid(7a4fb5af-479f-4074-bb40-ce6722e43c82),
+    helpstring("IVMRImageCompositor interface"),
+    pointer_default(unique)
+]
+interface IVMRImageCompositor : IUnknown
+{
+    HRESULT InitCompositionTarget([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget);
+    HRESULT TermCompositionTarget([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget);
+    HRESULT SetStreamMediaType([in] DWORD id, [in] AM_MEDIA_TYPE *pmt, [in] BOOL texture);
+    HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirectDrawSurface7 *rendertarget,
+                           [in] AM_MEDIA_TYPE *pmt, [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop,
+                           [in] DWORD backgrnd, [in] VMRVIDEOSTREAMINFO *info, [in] UINT streams);
+};
+
+[
+    local,
+    object,
+    uuid(058d1f11-2a54-4bef-bd54-df706626b727),
+    helpstring("IVMRVideoStreamControl interface"),
+    pointer_default(unique)
+]
+interface IVMRVideoStreamControl : IUnknown
+{
+    HRESULT SetColorKey([in] DDCOLORKEY *key);
+    HRESULT GetColorKey([out] DDCOLORKEY *key);
+    HRESULT SetStreamActiveState([in] BOOL active);
+    HRESULT GetStreamActiveState([out] BOOL *active);
+};
+
+[
+    local,
+    object,
+    uuid(9f3a1c85-8555-49ba-935f-be5b5b29d178),
+    helpstring("IVMRImagePresenterConfig interface"),
+    pointer_default(unique)
+]
+interface IVMRImagePresenterConfig : IUnknown
+{
+    HRESULT SetRenderingPrefs([in] DWORD prefs);
+    HRESULT GetRenderingPrefs([out] DWORD *prefs);
+};
+
+[
+    local,
+    object,
+    uuid(e6f7ce40-4673-44f1-8f77-5499d68cb4ea),
+    helpstring("IVMRImagePresenterExclModeConfig interface"),
+    pointer_default(unique)
+]
+interface IVMRImagePresenterExclModeConfig : IVMRImagePresenterConfig
+{
+    HRESULT SetXlcModeDDObjAndPrimarySurface([in] IDirectDraw7 *dddev, [in] IDirectDrawSurface7 *ddsurface);
+    HRESULT GetXlcModeDDObjAndPrimarySurface([out] IDirectDraw7 **dddev, [out] IDirectDrawSurface7 **ddsurface);
+};
+
+[
+    local,
+    object,
+    uuid(aac18c18-e186-46d2-825d-a1f8dc8e395a),
+    helpstring("IVPManager interface"),
+    pointer_default(unique)
+]
+interface IVPManager : IUnknown
+{
+    HRESULT SetVideoPortIndex([in] DWORD index);
+    HRESULT GetVideoPortIndex([out] DWORD *index);
+};
diff --git a/reactos/include/psdk/wbemcli.idl b/reactos/include/psdk/wbemcli.idl
new file mode 100644 (file)
index 0000000..b2ac6c1
--- /dev/null
@@ -0,0 +1,211 @@
+/*
+ * Copyright 2009 Hans Leidekker for CodeWeavers
+ *
+ * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+cpp_quote("DEFINE_GUID(CLSID_WbemLocator, 0x4590f811,0x1d3A,0x11d0,0x89,0x1f,0x00,0xaa,0x00,0x4b,0x2e,0x24);")
+cpp_quote("DEFINE_GUID(CLSID_WbemStatusCode, 0xeb87e1bd,0x3233,0x11d2,0xae,0xc9,0x00,0xc0,0x4f,0xb6,0x88,0x20);")
+
+import "objidl.idl";
+
+interface IWbemContext;
+interface IWbemServices;
+interface IWbemStatusCodeText;
+
+typedef [v1_enum] enum tag_WBEMSTATUS
+{
+    WBEM_NO_ERROR                           = 0,
+    WBEM_S_NO_ERROR                         = 0,
+    WBEM_S_SAME                             = 0,
+    WBEM_S_FALSE                            = 1,
+    WBEM_S_ALREADY_EXISTS                   = 0x40001,
+    WBEM_S_RESET_TO_DEFAULT                 = 0x40002,
+    WBEM_S_DIFFERENT                        = 0x40003,
+    WBEM_S_TIMEDOUT                         = 0x40004,
+    WBEM_S_NO_MORE_DATA                     = 0x40005,
+    WBEM_S_OPERATION_CANCELLED              = 0x40006,
+    WBEM_S_PENDING                          = 0x40007,
+    WBEM_S_DUPLICATE_OBJECTS                = 0x40008,
+    WBEM_S_ACCESS_DENIED                    = 0x40009,
+    WBEM_S_PARTIAL_RESULTS                  = 0x40010,
+    WBEM_S_SOURCE_NOT_AVAILABLE             = 0x40017,
+    WBEM_E_FAILED                           = 0x80041001,
+    WBEM_E_NOT_FOUND                        = 0x80041002,
+    WBEM_E_ACCESS_DENIED                    = 0x80041003,
+    WBEM_E_PROVIDER_FAILURE                 = 0x80041004,
+    WBEM_E_TYPE_MISMATCH                    = 0x80041005,
+    WBEM_E_OUT_OF_MEMORY                    = 0x80041006,
+    WBEM_E_INVALID_CONTEXT                  = 0x80041007,
+    WBEM_E_INVALID_PARAMETER                = 0x80041008,
+    WBEM_E_NOT_AVAILABLE                    = 0x80041009,
+    WBEM_E_CRITICAL_ERROR                   = 0x8004100a,
+    WBEM_E_INVALID_STREAM                   = 0x8004100b,
+    WBEM_E_NOT_SUPPORTED                    = 0x8004100c,
+    WBEM_E_INVALID_SUPERCLASS               = 0x8004100d,
+    WBEM_E_INVALID_NAMESPACE                = 0x8004100e,
+    WBEM_E_INVALID_OBJECT                   = 0x8004100f,
+    WBEM_E_INVALID_CLASS                    = 0x80041010,
+    WBEM_E_PROVIDER_NOT_FOUND               = 0x80041011,
+    WBEM_E_INVALID_PROVIDER_REGISTRATION    = 0x80041012,
+    WBEM_E_PROVIDER_LOAD_FAILURE            = 0x80041013,
+    WBEM_E_INITIALIZATION_FAILURE           = 0x80041014,
+    WBEM_E_TRANSPORT_FAILURE                = 0x80041015,
+    WBEM_E_INVALID_OPERATION                = 0x80041016,
+    WBEM_E_INVALID_QUERY                    = 0x80041017,
+    WBEM_E_INVALID_QUERY_TYPE               = 0x80041018,
+    WBEM_E_ALREADY_EXISTS                   = 0x80041019,
+    WBEM_E_OVERRIDE_NOT_ALLOWED             = 0x8004101a,
+    WBEM_E_PROPAGATED_QUALIFIER             = 0x8004101b,
+    WBEM_E_PROPAGATED_PROPERTY              = 0x8004101c,
+    WBEM_E_UNEXPECTED                       = 0x8004101d,
+    WBEM_E_ILLEGAL_OPERATION                = 0x8004101e,
+    WBEM_E_CANNOT_BE_KEY                    = 0x8004101f,
+    WBEM_E_INCOMPLETE_CLASS                 = 0x80041020,
+    WBEM_E_INVALID_SYNTAX                   = 0x80041021,
+    WBEM_E_NONDECORATED_OBJECT              = 0x80041022,
+    WBEM_E_READ_ONLY                        = 0x80041023,
+    WBEM_E_PROVIDER_NOT_CAPABLE             = 0x80041024,
+    WBEM_E_CLASS_HAS_CHILDREN               = 0x80041025,
+    WBEM_E_CLASS_HAS_INSTANCES              = 0x80041026,
+    WBEM_E_QUERY_NOT_IMPLEMENTED            = 0x80041027,
+    WBEM_E_ILLEGAL_NULL                     = 0x80041028,
+    WBEM_E_INVALID_QUALIFIER_TYPE           = 0x80041029,
+    WBEM_E_INVALID_PROPERTY_TYPE            = 0x8004102a,
+    WBEM_E_VALUE_OUT_OF_RANGE               = 0x8004102b,
+    WBEM_E_CANNOT_BE_SINGLETON              = 0x8004102c,
+    WBEM_E_INVALID_CIM_TYPE                 = 0x8004102d,
+    WBEM_E_INVALID_METHOD                   = 0x8004102e,
+    WBEM_E_INVALID_METHOD_PARAMETERS        = 0x8004102f,
+    WBEM_E_SYSTEM_PROPERTY                  = 0x80041030,
+    WBEM_E_INVALID_PROPERTY                 = 0x80041031,
+    WBEM_E_CALL_CANCELLED                   = 0x80041032,
+    WBEM_E_SHUTTING_DOWN                    = 0x80041033,
+    WBEM_E_PROPAGATED_METHOD                = 0x80041034,
+    WBEM_E_UNSUPPORTED_PARAMETER            = 0x80041035,
+    WBEM_E_MISSING_PARAMETER_ID             = 0x80041036,
+    WBEM_E_INVALID_PARAMETER_ID             = 0x80041037,
+    WBEM_E_NONCONSECUTIVE_PARAMETER_IDS     = 0x80041038,
+    WBEM_E_PARAMETER_ID_ON_RETVAL           = 0x80041039,
+    WBEM_E_INVALID_OBJECT_PATH              = 0x8004103a,
+    WBEM_E_OUT_OF_DISK_SPACE                = 0x8004103b,
+    WBEM_E_BUFFER_TOO_SMALL                 = 0x8004103c,
+    WBEM_E_UNSUPPORTED_PUT_EXTENSION        = 0x8004103d,
+    WBEM_E_UNKNOWN_OBJECT_TYPE              = 0x8004103e,
+    WBEM_E_UNKNOWN_PACKET_TYPE              = 0x8004103f,
+    WBEM_E_MARSHAL_VERSION_MISMATCH         = 0x80041040,
+    WBEM_E_MARSHAL_INVALID_SIGNATURE        = 0x80041041,
+    WBEM_E_INVALID_QUALIFIER                = 0x80041042,
+    WBEM_E_INVALID_DUPLICATE_PARAMETER      = 0x80041043,
+    WBEM_E_TOO_MUCH_DATA                    = 0x80041044,
+    WBEM_E_SERVER_TOO_BUSY                  = 0x80041045,
+    WBEM_E_INVALID_FLAVOR                   = 0x80041046,
+    WBEM_E_CIRCULAR_REFERENCE               = 0x80041047,
+    WBEM_E_UNSUPPORTED_CLASS_UPDATE         = 0x80041048,
+    WBEM_E_CANNOT_CHANGE_KEY_INHERITANCE    = 0x80041049,
+    WBEM_E_CANNOT_CHANGE_INDEX_INHERITANCE  = 0x80041050,
+    WBEM_E_TOO_MANY_PROPERTIES              = 0x80041051,
+    WBEM_E_UPDATE_TYPE_MISMATCH             = 0x80041052,
+    WBEM_E_UPDATE_OVERRIDE_NOT_ALLOWED      = 0x80041053,
+    WBEM_E_UPDATE_PROPAGATED_METHOD         = 0x80041054,
+    WBEM_E_METHOD_NOT_IMPLEMENTED           = 0x80041055,
+    WBEM_E_METHOD_DISABLED                  = 0x80041056,
+    WBEM_E_REFRESHER_BUSY                   = 0x80041057,
+    WBEM_E_UNPARSABLE_QUERY                 = 0x80041058,
+    WBEM_E_NOT_EVENT_CLASS                  = 0x80041059,
+    WBEM_E_MISSING_GROUP_WITHIN             = 0x8004105a,
+    WBEM_E_MISSING_AGGREGATION_LIST         = 0x8004105b,
+    WBEM_E_PROPERTY_NOT_AN_OBJECT           = 0x8004105c,
+    WBEM_E_AGGREGATING_BY_OBJECT            = 0x8004105d,
+    WBEM_E_UNINTERPRETABLE_PROVIDER_QUERY   = 0x8004105f,
+    WBEM_E_BACKUP_RESTORE_WINMGMT_RUNNING   = 0x80041060,
+    WBEM_E_QUEUE_OVERFLOW                   = 0x80041061,
+    WBEM_E_PRIVILEGE_NOT_HELD               = 0x80041062,
+    WBEM_E_INVALID_OPERATOR                 = 0x80041063,
+    WBEM_E_LOCAL_CREDENTIALS                = 0x80041064,
+    WBEM_E_CANNOT_BE_ABSTRACT               = 0x80041065,
+    WBEM_E_AMENDED_OBJECT                   = 0x80041066,
+    WBEM_E_CLIENT_TOO_SLOW                  = 0x80041067,
+    WBEM_E_NULL_SECURITY_DESCRIPTOR         = 0x80041068,
+    WBEM_E_TIMED_OUT                        = 0x80041069,
+    WBEM_E_INVALID_ASSOCIATION              = 0x8004106a,
+    WBEM_E_AMBIGUOUS_OPERATION              = 0x8004106b,
+    WBEM_E_QUOTA_VIOLATION                  = 0x8004106c,
+    WBEM_E_RESERVED_001                     = 0x8004106d,
+    WBEM_E_RESERVED_002                     = 0x8004106e,
+    WBEM_E_UNSUPPORTED_LOCALE               = 0x8004106f,
+    WBEM_E_HANDLE_OUT_OF_DATE               = 0x80041070,
+    WBEM_E_CONNECTION_FAILED                = 0x80041071,
+    WBEM_E_INVALID_HANDLE_REQUEST           = 0x80041072,
+    WBEM_E_PROPERTY_NAME_TOO_WIDE           = 0x80041073,
+    WBEM_E_CLASS_NAME_TOO_WIDE              = 0x80041074,
+    WBEM_E_METHOD_NAME_TOO_WIDE             = 0x80041075,
+    WBEM_E_QUALIFIER_NAME_TOO_WIDE          = 0x80041076,
+    WBEM_E_RERUN_COMMAND                    = 0x80041077,
+    WBEM_E_DATABASE_VER_MISMATCH            = 0x80041078,
+    WBEM_E_VETO_DELETE                      = 0x80041079,
+    WBEM_E_VETO_PUT                         = 0x8004107a,
+    WBEM_E_INVALID_LOCALE                   = 0x80041080,
+    WBEM_E_PROVIDER_SUSPENDED               = 0x80041081,
+    WBEM_E_SYNCHRONIZATION_REQUIRED         = 0x80041082,
+    WBEM_E_NO_SCHEMA                        = 0x80041083,
+    WBEM_E_PROVIDER_ALREADY_REGISTERED      = 0x80041084,
+    WBEM_E_PROVIDER_NOT_REGISTERED          = 0x80041085,
+    WBEM_E_FATAL_TRANSPORT_ERROR            = 0x80041086,
+    WBEM_E_ENCRYPTED_CONNECTION_REQUIRED    = 0x80041087,
+    WBEM_E_PROVIDER_TIMED_OUT               = 0x80041088,
+    WBEM_E_NO_KEY                           = 0x80041089,
+    WBEM_E_PROVIDER_DISABLED                = 0x8004108a
+} WBEMSTATUS;
+
+[
+    object,
+    restricted,
+    local,
+    uuid(dc12a687-737f-11cf-884d-00aa004b2e24),
+    pointer_default(unique)
+]
+interface IWbemLocator : IUnknown
+{
+    HRESULT ConnectServer(
+        [in] const BSTR strNetworkResource,
+        [in] const BSTR strUser,
+        [in] const BSTR strPassword,
+        [in] const BSTR strLocale,
+        [in] LONG lSecurityFlags,
+        [in] const BSTR strAuthority,
+        [in] IWbemContext *pCtx,
+        [out] IWbemServices **ppNamespace);
+};
+
+[
+    object,
+    local,
+    uuid(eb87e1bc-3233-11d2-aec9-00c04fb68820)
+]
+interface IWbemStatusCodeText : IUnknown
+{
+    HRESULT GetErrorCodeText(
+        [in] HRESULT hRes,
+        [in] LCID LocaleId,
+        [in] LONG lFlags,
+        [out] BSTR *MessageText);
+
+    HRESULT GetFacilityCodeText(
+        [in] HRESULT hRes,
+        [in] LCID LocaleId,
+        [in] LONG lFlags,
+        [out] BSTR *MessageText);
+};
index 1bcb2cd..97fd4ac 100644 (file)
@@ -98,6 +98,22 @@ typedef enum WICBitmapPaletteType {
     WICBITMAPPALETTETYPE_FORCE_DWORD = CODEC_FORCE_DWORD
 } WICBitmapPaletteType;
 
+typedef enum WICBitmapTransformOptions {
+    WICBitmapTransformRotate0 = 0x00000000,
+    WICBitmapTransformRotate90 = 0x00000001,
+    WICBitmapTransformRotate180 = 0x00000002,
+    WICBitmapTransformRotate270 = 0x00000003,
+    WICBitmapTransformFlipHorizontal = 0x00000008,
+    WICBitmapTransformFlipVertical = 0x00000010,
+    WICBITMAPTRANSFORMOPTIONS_FORCE_DWORD = CODEC_FORCE_DWORD
+} WICBitmapTransformOptions;
+
+typedef enum WICColorContextType {
+    WICColorContextUninitialized = 0x00000000,
+    WICColorContextProfile = 0x00000001,
+    WICColorContextExifColorSpace = 0x00000002
+} WICColorContextType;
+
 typedef enum WICComponentType {
     WICDecoder = 0x00000001,
     WICEncoder = 0x00000002,
@@ -178,14 +194,39 @@ cpp_quote("#define WINCODEC_ERR_UNSUPPORTEDOPERATION 0x88982f81")
 cpp_quote("#define WINCODEC_ERR_INSUFFICIENTBUFFER 0x88982f8c")
 
 interface IWICPalette;
-interface IWICBitmapClipper;
-interface IWICBitmapFlipRotator;
-interface IWICColorContext;
 interface IWICColorTransform;
 interface IWICFastMetadataEncoder;
 interface IWICMetadataQueryReader;
 interface IWICMetadataQueryWriter;
 
+[
+    object,
+    uuid(3c613a02-34b2-44ea-9a7c-45aea9c6fd6d)
+]
+interface IWICColorContext : IUnknown
+{
+    HRESULT InitializeFromFilename(
+        [in] LPCWSTR wzFilename);
+
+    HRESULT InitializeFromMemory(
+        [in, size_is(cbBufferSize)] const BYTE *pbBuffer,
+        [in] UINT cbBufferSize);
+
+    HRESULT InitializeFromExifColorSpace(
+        [in] UINT value);
+
+    HRESULT GetType(
+        [out] WICColorContextType *pType);
+
+    HRESULT GetProfileBytes(
+        [in] UINT cbBuffer,
+        [in, out, unique, size_is(cbBuffer)] BYTE *pbBuffer,
+        [out] UINT *pcbActual);
+
+    HRESULT GetExifColorSpace(
+        [out] UINT *pValue);
+}
+
 [
     object,
     uuid(00000120-a8f2-4877-ba0a-fd2b6645fb94)
@@ -234,6 +275,17 @@ interface IWICBitmapLock : IUnknown
         [out] WICPixelFormatGUID *pPixelFormat);
 }
 
+[
+    object,
+    uuid(5009834f-2d6a-41ce-9e1b-17c5aff7a782)
+]
+interface IWICBitmapFlipRotator : IWICBitmapSource
+{
+    HRESULT Initialize(
+        [in] IWICBitmapSource *pISource,
+        [in] WICBitmapTransformOptions options);
+}
+
 [
     object,
     uuid(00000121-a8f2-4877-ba0a-fd2b6645fb94)
@@ -645,6 +697,17 @@ interface IWICBitmapScaler : IWICBitmapSource
         [in] WICBitmapInterpolationMode mode);
 }
 
+[
+    object,
+    uuid(e4fbcf03-223d-4e81-9333-d635556dd1b5)
+]
+interface IWICBitmapClipper : IWICBitmapSource
+{
+    HRESULT Initialize(
+        [in] IWICBitmapSource *pISource,
+        [in] const WICRect *prc);
+}
+
 cpp_quote("DEFINE_GUID(CLSID_WICImagingFactory, 0xcacaf262,0x9370,0x4615,0xa1,0x3b,0x9f,0x55,0x39,0xda,0x4c,0x0a);")
 
 [
index 77ad056..2df2d5f 100644 (file)
@@ -981,6 +981,7 @@ typedef enum {
 #define SUBLANG_GREENLANDIC_GREENLAND   0x01
 #define SUBLANG_GUJARATI_INDIA   0x01
 #define SUBLANG_HAUSA_NIGERIA_LATIN   0x01
+#define SUBLANG_HAUSA_NIGERIA   0x01
 #define SUBLANG_HEBREW_ISRAEL   0x01
 #define SUBLANG_HINDI_INDIA   0x01
 #define SUBLANG_HUNGARIAN_HUNGARY   0x01
@@ -1004,8 +1005,10 @@ typedef enum {
 #define SUBLANG_KOREAN   0x01
 #define SUBLANG_KYRGYZ_KYRGYZSTAN   0x01
 #define SUBLANG_LAO_LAO   0x01
+#define SUBLANG_LAO_LAO_PDR  0x01
 #define SUBLANG_LATVIAN_LATVIA   0x01
 #define SUBLANG_LITHUANIAN_LITHUANIA   0x01
+#define SUBLANG_LITHUANIAN   0x01
 #define SUBLANG_LOWER_SORBIAN_GERMANY   0x02
 #define SUBLANG_LUXEMBOURGISH_LUXEMBOURG   0x01
 #define SUBLANG_MACEDONIAN_MACEDONIA   0x01
@@ -1082,6 +1085,7 @@ typedef enum {
 #define SUBLANG_SPANISH_URUGUAY   0x0e
 #define SUBLANG_SPANISH_VENEZUELA   0x08
 #define SUBLANG_SWAHILI   0x01
+#define SUBLANG_SWAHILI_KENYA   0x01
 #define SUBLANG_SWEDISH_FINLAND   0x02
 #define SUBLANG_SWEDISH   0x01
 #define SUBLANG_SWEDISH_SWEDEN   0x01
index fbae731..132a132 100644 (file)
@@ -4346,6 +4346,8 @@ BOOL WINAPI PrintWindow(HWND,HDC,UINT);
 #endif
 UINT WINAPI PrivateExtractIconsA(LPCSTR,int,int,int,HICON*,UINT*,UINT,UINT);
 UINT WINAPI PrivateExtractIconsW(LPCWSTR,int,int,int,HICON*,UINT*,UINT,UINT);
+UINT WINAPI WINAPI PrivateExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
+UINT WINAPI WINAPI PrivateExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
 BOOL WINAPI PtInRect(LPCRECT,POINT);
 HWND WINAPI RealChildWindowFromPoint(HWND,POINT);
 UINT WINAPI RealGetWindowClassA(HWND,LPSTR,UINT);
index 4a311ba..c463158 100644 (file)
@@ -800,7 +800,7 @@ typedef struct tagQUERYCONTEXT
     DWORD dwVersionLo;
 } QUERYCONTEXT;
 
-typedef [v1_enum] enum tagTYSPEC
+typedef [v1_enum] enum tagTYSPEC 
 {
     TYSPEC_CLSID,
     TYSPEC_FILEEXT,
index cfa5b6e..afa9847 100644 (file)
@@ -48,6 +48,7 @@ DEFINE_GUID(GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
 #include "docobj.h"
 #include "exdisp.h"
 
+#include "shdeprecated.h"
 #include "shlguid.h"
 #include "shlguid_undoc.h"
 #include "shlobj.h"
@@ -144,7 +145,7 @@ DEFINE_GUID(CLSID_Picture_Metafile,       0x00000315,0x0000,0x0000,0xc0,0x00,0x0
 DEFINE_GUID(CLSID_StaticMetafile,         0x00000315,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
 DEFINE_GUID(CLSID_Picture_Dib,            0x00000316,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
 DEFINE_GUID(CLSID_StaticDib,              0x00000316,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
-DEFINE_GUID(CLSID_Picture_EnhMetafile,    0x00000316,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
+DEFINE_GUID(CLSID_Picture_EnhMetafile,    0x00000319,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
 DEFINE_GUID(CLSID_DCOMAccessControl,      0x0000031d,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
 DEFINE_GUID(CLSID_StdGlobalInterfaceTable,0x00000323,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
 DEFINE_GUID(CLSID_ComBinding,             0x00000328,0x0000,0x0000,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x46);
@@ -156,10 +157,20 @@ DEFINE_GUID(CLSID_TF_ThreadMgr,           0x529a9e6b,0x6587,0x4f23,0xab,0x9e,0x9
 DEFINE_GUID(CLSID_TF_InputProcessorProfiles, 0x33c53a50,0xf456,0x4884,0xb0,0x49,0x85,0xfd,0x64,0x3e,0xcf,0xed);
 DEFINE_GUID(CLSID_TF_CategoryMgr,         0xA4B544A1,0x438D,0x4B41,0x93,0x25,0x86,0x95,0x23,0xE2,0xD6,0xC7);
 DEFINE_GUID(CLSID_TF_LangBarMgr,          0xebb08c45,0x6c4a,0x4fdc,0xae,0x53,0x4e,0xb8,0xc4,0xc7,0xdb,0x8e);
+DEFINE_GUID(CLSID_TF_DisplayAttributeMgr, 0x3ce74de4,0x53d3,0x4d74,0x8b,0x83,0x43,0x1b,0x38,0x28,0xba,0x53);
 DEFINE_GUID(CLSID_TaskbarList,            0x56fdf344,0xfd6d,0x11d0,0x95,0x8a,0x00,0x60,0x97,0xc9,0xa0,0x90);
 DEFINE_GUID(GUID_TFCAT_TIP_KEYBOARD,     0x34745c63,0xb2f0,0x4784,0x8b,0x67,0x5e,0x12,0xc8,0x70,0x1a,0x31);
 DEFINE_GUID(GUID_TFCAT_TIP_SPEECH,       0xB5A73CD1,0x8355,0x426B,0xA1,0x61,0x25,0x98,0x08,0xF2,0x6B,0x14);
 DEFINE_GUID(GUID_TFCAT_TIP_HANDWRITING,  0x246ecb87,0xc2f2,0x4abe,0x90,0x5b,0xc8,0xb3,0x8a,0xdd,0x2c,0x43);
 DEFINE_GUID(CLSID_ConnectionManager,      0xBA126AD1,0x2166,0x11D1,0xB1,0xD0,0x0,0x80,0x5F,0xC1,0x27,0x0E);
 DEFINE_GUID(CLSID_CNetCfg,                0x5B035261,0x40F9,0x11D1,0xAA,0xEC,0x00,0x80,0x5F,0xC1,0x27,0x0E);
-
+DEFINE_GUID(GUID_TFCAT_DISPLAYATTRIBUTEPROVIDER,  0x046B8C80,0x1647,0x40F7,0x9B,0x21,0xB9,0x3B,0x81,0xAA,0xBC,0x1B);
+DEFINE_GUID(GUID_COMPARTMENT_KEYBOARD_DISABLED,     0x71a5b253,0x1951,0x466b,0x9f,0xbc,0x9c,0x88,0x08,0xfa,0x84,0xf2);
+DEFINE_GUID(GUID_COMPARTMENT_KEYBOARD_OPENCLOSE,    0x58273aad,0x01bb,0x4164,0x95,0xc6,0x75,0x5b,0xa0,0xb5,0x16,0x2d);
+DEFINE_GUID(GUID_COMPARTMENT_HANDWRITING_OPENCLOSE, 0xf9ae2c6b,0x1866,0x4361,0xaf,0x72,0x7a,0xa3,0x09,0x48,0x89,0x0e);
+DEFINE_GUID(GUID_COMPARTMENT_SPEECH_DISABLED,       0x56c5c607,0x0703,0x4e59,0x8e,0x52,0xcb,0xc8,0x4e,0x8b,0xbe,0x35);
+DEFINE_GUID(GUID_COMPARTMENT_SPEECH_OPENCLOSE,      0x544d6a63,0xe2e8,0x4752,0xbb,0xd1,0x00,0x09,0x60,0xbc,0xa0,0x83);
+DEFINE_GUID(GUID_COMPARTMENT_SPEECH_GLOBALSTATE,    0x2a54fe8e,0x0d08,0x460c,0xa7,0x5d,0x87,0x03,0x5f,0xf4,0x36,0xc5);
+DEFINE_GUID(GUID_COMPARTMENT_PERSISTMENUENABLED,    0x575f3783,0x70c8,0x47c8,0xae,0x5d,0x91,0xa0,0x1a,0x1f,0x75,0x92);
+DEFINE_GUID(GUID_COMPARTMENT_EMPTYCONTEXT,          0xd7487dbf,0x804e,0x41c5,0x89,0x4d,0xad,0x96,0xfd,0x4e,0xea,0x13);
+DEFINE_GUID(GUID_COMPARTMENT_TIPUISTATUS,           0x148ca3ec,0x0366,0x401c,0x8d,0x75,0xed,0x97,0x8d,0x85,0xfb,0xc9);