Sync most idl files with Wine head. (Samuel Serapion)

Modify shell32 and uuid to work with the new idls.
This will break build till next commit.

svn path=/trunk/; revision=47953
This commit is contained in:
Daniel Reimer 2010-07-05 23:00:19 +00:00
parent e96b3a5001
commit d848c9746e
33 changed files with 4734 additions and 162 deletions

View 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,

View 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 */

View 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(

View file

@ -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;

View 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")

View 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>

View file

@ -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);
};

View 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);
}
[

View file

@ -63,6 +63,13 @@
#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

View 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;")

View file

@ -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[]);
};

File diff suppressed because it is too large Load diff

View 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

View file

@ -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);
}

View 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")

View file

@ -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;
}
}

View 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>
@ -27,11 +28,14 @@
<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>

View 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

View 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);
}

View 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 */

View 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);

View file

@ -24,6 +24,10 @@
#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);

View 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
interface IFolderView : IUnknown
{
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);
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);
}

View 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

View file

@ -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;

View file

@ -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);
};

View file

@ -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);
};

View file

@ -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);
};

View 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);")
[

View 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

View 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);

View 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,

View 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);