Files
reactos/reactos/include/psdk/axextend.idl
T
Christoph von Wittich 1f121135ab update riched20,ole32,oleaut32 to latest wine versions
disable ks,portcls,wdm because of broken ks.h
updated psdk,ddk headers
updated uuid and wine libs
implement IdlHeader handling in rbuild
added new idl files and removed the old header files
TODO: get rid of the WINELIB_NAME_AW macros, fix ks.h

svn path=/trunk/; revision=26428
2007-04-20 02:30:53 +00:00

985 lines
22 KiB
Plaintext

/*
* Copyright (C) 2002 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
*/
interface IAMAnalogVideoDecoder;
interface IAMAnalogVideoEncoder;
interface IAMAudioInputMixer;
interface IAMAudioRendererStats;
interface IAMBufferNegotiation;
interface IAMCameraControl;
interface IAMCopyCaptureFileProgress;
interface IAMCrossbar;
interface IAMDevMemoryAllocator;
interface IAMDevMemoryControl;
interface IAMDroppedFrames;
interface IAMExtDevice;
interface IAMExtTransport;
interface IAMGraphStreams;
interface IAMLatency;
interface IAMOpenProgress;
interface IAMOverlayFX;
interface IAMPhysicalPinInfo;
interface IAMPushSource;
interface IAMStreamConfig;
interface IAMTimecodeDisplay;
interface IAMTimecodeGenerator;
interface IAMTimecodeReader;
interface IAMTVTuner;
interface IAMVfwCaptureDialogs;
interface IAMVfwCompressDialogs;
interface IAMVideoCompression;
interface IAMVideoDecimationProperties;
interface IAMVideoProcAmp;
interface ICaptureGraphBuilder;
interface ICaptureGraphBuilder2;
interface IConfigAviMux;
interface IConfigInterleaving;
interface IDecimateVideoImage;
interface IDrawVideoImage;
interface IEnumRegFilters;
interface IEnumStreamIdMap;
interface IFileSourceFilter;
interface IFileSinkFilter;
interface IFileSinkFilter2;
interface IFilterMapper;
interface IFilterMapper2;
interface IGraphBuilder;
interface IKsPropertySet;
interface IMediaEventSink;
interface IMpeg2Demultiplexer;
interface IMPEG2StreamIdMap;
interface IOverlay;
interface IOverlayNotify;
interface IOverlayNotify2;
interface IQualityControl;
interface ISeekingPassThru;
typedef struct
{
CLSID Clsid;
LPWSTR Name;
} REGFILTER;
[
object,
uuid(56a868a4-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IEnumRegFilters : IUnknown
{
HRESULT Next
( [in] ULONG cFilters,
[out] REGFILTER ** apRegFilter,
[out] ULONG * pcFetched
);
HRESULT Skip(
[in] ULONG cFilters
);
HRESULT Reset(void);
HRESULT Clone(
[out] IEnumRegFilters **ppEnum
);
}
typedef IEnumRegFilters *PENUMREGFILTERS;
[
object,
uuid(56a868a3-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IFilterMapper : IUnknown
{
enum { MERIT_PREFERRED = 0x800000,
MERIT_NORMAL = 0x600000,
MERIT_UNLIKELY = 0x400000,
MERIT_DO_NOT_USE = 0x200000,
MERIT_SW_COMPRESSOR = 0x100000,
MERIT_HW_COMPRESSOR = 0x100050
};
HRESULT RegisterFilter
( [in] CLSID clsid,
[in] LPCWSTR Name,
[in] DWORD dwMerit
);
HRESULT RegisterFilterInstance
( [in] CLSID clsid,
[in] LPCWSTR Name,
[out] CLSID *MRId
);
HRESULT RegisterPin
( [in] CLSID Filter,
[in] LPCWSTR Name,
[in] BOOL bRendered,
[in] BOOL bOutput,
[in] BOOL bZero,
[in] BOOL bMany,
[in] CLSID ConnectsToFilter,
[in] LPCWSTR ConnectsToPin
);
HRESULT RegisterPinType
( [in] CLSID clsFilter,
[in] LPCWSTR strName,
[in] CLSID clsMajorType,
[in] CLSID clsSubType
);
HRESULT UnregisterFilter
( [in] CLSID Filter
);
HRESULT UnregisterFilterInstance
( [in] CLSID MRId
);
HRESULT UnregisterPin
( [in] CLSID Filter,
[in] LPCWSTR Name
);
HRESULT EnumMatchingFilters
( [out] IEnumRegFilters **ppEnum,
[in] DWORD dwMerit,
[in] BOOL bInputNeeded,
[in] CLSID clsInMaj,
[in] CLSID clsInSub,
[in] BOOL bRender,
[in] BOOL bOututNeeded,
[in] CLSID clsOutMaj,
[in] CLSID clsOutSub
);
}
typedef struct
{
const CLSID * clsMajorType;
const CLSID * clsMinorType;
} REGPINTYPES;
typedef struct
{
LPWSTR strName;
BOOL bRendered;
BOOL bOutput;
BOOL bZero;
BOOL bMany;
const CLSID * clsConnectsToFilter;
const WCHAR * strConnectsToPin;
UINT nMediaTypes;
const REGPINTYPES * lpMediaType;
} REGFILTERPINS;
typedef struct
{
CLSID clsMedium;
DWORD dw1;
DWORD dw2;
} REGPINMEDIUM;
enum
{
REG_PINFLAG_B_ZERO = 0x1,
REG_PINFLAG_B_RENDERER = 0x2,
REG_PINFLAG_B_MANY = 0x4,
REG_PINFLAG_B_OUTPUT = 0x8
};
typedef struct
{
DWORD dwFlags;
UINT cInstances;
UINT nMediaTypes;
[size_is(nMediaTypes)] const REGPINTYPES * lpMediaType;
UINT nMediums;
[size_is(nMediums)] const REGPINMEDIUM *lpMedium;
const CLSID *clsPinCategory;
} REGFILTERPINS2;
typedef struct
{
DWORD dwVersion;
DWORD dwMerit;
[switch_is(dwVersion)] [switch_type(DWORD)] union
{
[case(1)]
struct
{
ULONG cPins;
[size_is(cPins)] const REGFILTERPINS *rgPins;
} DUMMYSTRUCTNAME;
[case(2)]
struct
{
ULONG cPins2;
[size_is(cPins2)] const REGFILTERPINS2 *rgPins2;
} DUMMYSTRUCTNAME1;
[default]
;
} DUMMYUNIONNAME;
} REGFILTER2;
[
object,
uuid(b79bb0b0-33c1-11d1-abe1-00a0c905f375),
pointer_default(unique)
]
interface IFilterMapper2 : IUnknown
{
HRESULT CreateCategory
( [in] REFCLSID clsidCategory,
[in] DWORD dwCategoryMerit,
[in] LPCWSTR Description
);
HRESULT UnregisterFilter
( [in] const CLSID *pclsidCategory,
[in] const OLECHAR *szInstance,
[in] REFCLSID Filter
);
HRESULT RegisterFilter
( [in] REFCLSID clsidFilter,
[in] LPCWSTR Name,
[in, out] IMoniker **ppMoniker,
[in] const CLSID *pclsidCategory,
[in] const OLECHAR *szInstance,
[in] const REGFILTER2 *prf2
);
HRESULT EnumMatchingFilters
( [out] IEnumMoniker **ppEnum,
[in] DWORD dwFlags,
[in] BOOL bExactMatch,
[in] DWORD dwMerit,
[in] BOOL bInputNeeded,
[in] DWORD cInputTypes,
[size_is(cInputTypes*2)] const GUID *pInputTypes,
[in] const REGPINMEDIUM *pMedIn,
[in] const CLSID *pPinCategoryIn,
[in] BOOL bRender,
[in] BOOL bOutputNeeded,
[in] DWORD cOutputTypes,
[size_is(cOutputTypes*2)] const GUID *pOutputTypes,
[in] const REGPINMEDIUM *pMedOut,
[in] const CLSID *pPinCategoryOut
);
}
[
object,
uuid(b79bb0b1-33c1-11d1-abe1-00a0c905f375),
pointer_default(unique)
]
interface IFilterMapper3 : IFilterMapper2
{
HRESULT GetICreateDevEnum( [out] ICreateDevEnum **ppEnum );
}
typedef enum tagQualityMessageType
{
Famine,
Flood
} QualityMessageType;
typedef struct tagQuality
{
QualityMessageType Type;
long Proportion;
REFERENCE_TIME Late;
REFERENCE_TIME TimeStamp;
} Quality;
typedef IQualityControl *PQUALITYCONTROL;
[
object,
uuid(56a868a5-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IQualityControl : IUnknown
{
HRESULT Notify
( [in] IBaseFilter * pSelf,
[in] Quality q
);
HRESULT SetSink
( [in] IQualityControl * piqc
);
}
enum
{
CK_NOCOLORKEY = 0x0,
CK_INDEX = 0x1,
CK_RGB = 0x2
};
typedef struct tagCOLORKEY
{
DWORD KeyType;
DWORD PaletteIndex;
COLORREF LowColorValue;
COLORREF HighColorValue;
} COLORKEY;
enum
{
ADVISE_NONE = 0x0,
ADVISE_CLIPPING = 0x1,
ADVISE_PALETTE = 0x2,
ADVISE_COLORKEY = 0x4,
ADVISE_POSITION = 0x8,
ADVISE_DISPLAY_CHANGE = 0x10
};
const DWORD ADVISE_ALL = ADVISE_CLIPPING |
ADVISE_PALETTE |
ADVISE_COLORKEY |
ADVISE_POSITION;
const DWORD ADVISE_ALL2 = ADVISE_ALL |
ADVISE_DISPLAY_CHANGE;
cpp_quote("#ifndef _WINGDI_")
/* already defined in wingdi.h, but needed for WIDL */
typedef struct _RGNDATAHEADER
{
DWORD dwSize;
DWORD iType;
DWORD nCount;
DWORD nRgnSize;
RECT rcBound;
} RGNDATAHEADER;
typedef struct _RGNDATA
{
RGNDATAHEADER rdh;
char Buffer[1];
} RGNDATA;
cpp_quote("#endif /* _WINGDI_ */")
[
object,
local,
uuid(56a868a0-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IOverlayNotify : IUnknown
{
HRESULT OnPaletteChange(
[in] DWORD dwColors,
[in] const PALETTEENTRY *pPalette);
HRESULT OnClipChange(
[in] const RECT *pSourceRect,
[in] const RECT *pDestinationRect,
[in] const RGNDATA *pRgnData);
HRESULT OnColorKeyChange([in] const COLORKEY *pColorKey);
HRESULT OnPositionChange([in] const RECT *pSourceRect,
[in] const RECT *pDestinationRect);
}
typedef IOverlayNotify *POVERLAYNOTIFY;
cpp_quote("#if 0")
typedef HANDLE HMONITOR;
cpp_quote("#endif /* 0 */")
[
object,
local,
uuid(680EFA10-D535-11D1-87C8-00A0C9223196),
pointer_default(unique)
]
interface IOverlayNotify2 : IOverlayNotify
{
HRESULT OnDisplayChange(
HMONITOR hMonitor);
}
typedef IOverlayNotify2 *POVERLAYNOTIFY2;
[
object,
local,
uuid(56a868a1-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IOverlay : IUnknown
{
HRESULT GetPalette(
[out] DWORD *pdwColors,
[out] PALETTEENTRY **ppPalette);
HRESULT SetPalette(
[in] DWORD dwColors,
[in] PALETTEENTRY *pPalette);
HRESULT GetDefaultColorKey([out] COLORKEY *pColorKey);
HRESULT GetColorKey([out] COLORKEY *pColorKey);
HRESULT SetColorKey([in,out] COLORKEY *pColorKey);
HRESULT GetWindowHandle([out] HWND *pHwnd);
HRESULT GetClipList([out] RECT *pSourceRect,
[out] RECT *pDestinationRect,
[out] RGNDATA **ppRgnData);
HRESULT GetVideoPosition([out] RECT *pSourceRect,
[out] RECT *pDestinationRect);
HRESULT Advise(
[in] IOverlayNotify *pOverlayNotify,
[in] DWORD dwInterests);
HRESULT Unadvise();
}
typedef IOverlay *POVERLAY;
[
object,
uuid(56a868a2-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IMediaEventSink : IUnknown
{
HRESULT Notify(
[in] long EventCode,
[in] LONG_PTR EventParam1,
[in] LONG_PTR EventParam2
);
}
typedef IMediaEventSink *PMEDIAEVENTSINK;
[
object,
uuid(56a868a6-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IFileSourceFilter : IUnknown
{
HRESULT Load(
[in] LPCOLESTR pszFileName,
[in, unique] const AM_MEDIA_TYPE *pmt
);
HRESULT GetCurFile(
[out] LPOLESTR *ppszFileName,
[out] AM_MEDIA_TYPE *pmt
);
}
typedef IFileSourceFilter *PFILTERFILESOURCE;
[
object,
uuid(a2104830-7c70-11cf-8bce-00aa00a3f1a6),
pointer_default(unique)
]
interface IFileSinkFilter : IUnknown
{
HRESULT SetFileName(
[in] LPCOLESTR pszFileName,
[in, unique] const AM_MEDIA_TYPE *pmt
);
HRESULT GetCurFile(
[out] LPOLESTR *ppszFileName,
[out] AM_MEDIA_TYPE *pmt
);
}
typedef IFileSinkFilter *PFILTERFILESINK;
[
object,
uuid(00855B90-CE1B-11d0-BD4F-00A0C911CE86),
pointer_default(unique)
]
interface IFileSinkFilter2 : IFileSinkFilter
{
HRESULT SetMode(
[in] DWORD dwFlags
);
HRESULT GetMode(
[out] DWORD *pdwFlags
);
}
typedef IFileSinkFilter2 *PFILESINKFILTER2;
typedef enum
{
AM_FILE_OVERWRITE = 0x00000001,
} AM_FILESINK_FLAGS;
[
object,
uuid(56a868a9-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IGraphBuilder : IFilterGraph
{
HRESULT Connect
( [in] IPin * ppinOut,
[in] IPin * ppinIn
);
HRESULT Render
( [in] IPin * ppinOut
);
HRESULT RenderFile
( [in] LPCWSTR lpcwstrFile,
[in, unique] LPCWSTR lpcwstrPlayList
);
HRESULT AddSourceFilter
( [in] LPCWSTR lpcwstrFileName,
[in, unique] LPCWSTR lpcwstrFilterName,
[out] IBaseFilter* *ppFilter
);
HRESULT SetLogFile
( [in] DWORD_PTR hFile
);
HRESULT Abort();
HRESULT ShouldOperationContinue();
}
[
object,
uuid(bf87b6e0-8c27-11d0-b3f0-00aa003761c5),
pointer_default(unique)
]
interface ICaptureGraphBuilder : IUnknown {
HRESULT SetFiltergraph(
[in] IGraphBuilder *pfg);
HRESULT GetFiltergraph(
[out] IGraphBuilder **ppfg);
HRESULT SetOutputFileName(
[in] const GUID *pType,
[in] LPCOLESTR lpstrFile,
[out] IBaseFilter **ppf,
[out] IFileSinkFilter **ppSink);
[local] HRESULT FindInterface(
[in, unique] const GUID *pCategory,
[in] IBaseFilter *pf,
[in] REFIID riid,
[out] void **ppint);
[call_as(FindInterface)] HRESULT RemoteFindInterface(
[in, unique] const GUID *pCategory,
[in] IBaseFilter *pf,
[in] REFIID riid,
[out] IUnknown **ppint);
HRESULT RenderStream(
[in] const GUID *pCategory,
[in] IUnknown *pSource,
[in] IBaseFilter *pfCompressor,
[in] IBaseFilter *pfRenderer);
HRESULT ControlStream(
[in] const GUID *pCategory,
[in] IBaseFilter *pFilter,
[in] REFERENCE_TIME *pstart,
[in] REFERENCE_TIME *pstop,
[in] WORD wStartCookie,
[in] WORD wStopCookie);
HRESULT AllocCapFile(
[in] LPCOLESTR lpstr,
[in] DWORDLONG dwlSize);
HRESULT CopyCaptureFile(
[in] LPOLESTR lpwstrOld,
[in] LPOLESTR lpwstrNew,
[in] int fAllowEscAbort,
[in] IAMCopyCaptureFileProgress *pCallback);
}
[
object,
uuid(670d1d20-a068-11d0-b3f0-00aa003761c5),
pointer_default(unique)
]
interface IAMCopyCaptureFileProgress : IUnknown
{
HRESULT Progress(
[in] int iProgress);
}
[
object,
uuid(93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D),
pointer_default(unique)
]
interface ICaptureGraphBuilder2 : IUnknown
{
HRESULT SetFiltergraph(
[in] IGraphBuilder *pfg);
HRESULT GetFiltergraph(
[out] IGraphBuilder **ppfg);
HRESULT SetOutputFileName(
[in] const GUID *pType,
[in] LPCOLESTR lpstrFile,
[out] IBaseFilter **ppf,
[out] IFileSinkFilter **ppSink);
[local] HRESULT FindInterface(
[in] const GUID *pCategory,
[in] const GUID *pType,
[in] IBaseFilter *pf,
[in] REFIID riid,
[out] void **ppint);
[call_as(FindInterface)] HRESULT RemoteFindInterface(
[in] const GUID *pCategory,
[in] const GUID *pType,
[in] IBaseFilter *pf,
[in] REFIID riid,
[out] IUnknown **ppint);
HRESULT RenderStream(
[in] const GUID *pCategory,
[in] const GUID *pType,
[in] IUnknown *pSource,
[in] IBaseFilter *pfCompressor,
[in] IBaseFilter *pfRenderer);
HRESULT ControlStream(
[in] const GUID *pCategory,
[in] const GUID *pType,
[in] IBaseFilter *pFilter,
[in] REFERENCE_TIME *pstart,
[in] REFERENCE_TIME *pstop,
[in] WORD wStartCookie,
[in] WORD wStopCookie);
HRESULT AllocCapFile(
[in] LPCOLESTR lpstr,
[in] DWORDLONG dwlSize);
HRESULT CopyCaptureFile(
[in] LPOLESTR lpwstrOld,
[in] LPOLESTR lpwstrNew,
[in] int fAllowEscAbort,
[in] IAMCopyCaptureFileProgress *pCallback);
HRESULT FindPin(
[in] IUnknown *pSource,
[in] PIN_DIRECTION pindir,
[in] const GUID *pCategory,
[in] const GUID *pType,
[in] BOOL fUnconnected,
[in] int num,
[out] IPin **ppPin);
}
enum _AM_RENSDEREXFLAGS
{
AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x01
};
[
object,
uuid(36b73882-c2c8-11cf-8b46-00805f6cef60),
pointer_default(unique)
]
interface IFilterGraph2: IGraphBuilder
{
HRESULT AddSourceFilterForMoniker(
[in] IMoniker *pMoniker,
[in] IBindCtx *pCtx,
[in, unique] LPCWSTR lpcwstrFilterName,
[out] IBaseFilter **ppFilter
);
HRESULT ReconnectEx
( [in] IPin * ppin,
[in, unique] const AM_MEDIA_TYPE *pmt
);
HRESULT RenderEx( [in] IPin *pPinOut,
[in] DWORD dwFlags,
[in, out] DWORD *pvContext
);
}
[
object,
local,
uuid(56a868bf-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IStreamBuilder : IUnknown
{
HRESULT Render
( [in] IPin * ppinOut,
[in] IGraphBuilder * pGraph
);
HRESULT Backout
( [in] IPin * ppinOut,
[in] IGraphBuilder * pGraph
);
}
/*****************************************************************************
* IAMStreamConfig interface
*/
[
object,
uuid(c6e13340-30ac-11d0-a18c-00a0c9118956),
pointer_default(unique)
]
interface IAMStreamConfig : IUnknown
{
HRESULT SetFormat( [in] AM_MEDIA_TYPE *pmt);
HRESULT GetFormat( [in] AM_MEDIA_TYPE **pmt);
HRESULT GetNumberOfCapabilities( [out] int *piCount, [out] int *piSize);
HRESULT GetStreamCaps( [in] int iIndex, [out] AM_MEDIA_TYPE **pmt,
[out] BYTE *pSCC);
}
typedef enum tagVideoProcAmpProperty
{
VideoProcAmp_Brightness,
VideoProcAmp_Contrast,
VideoProcAmp_Hue,
VideoProcAmp_Saturation,
VideoProcAmp_Sharpness,
VideoProcAmp_Gamma,
VideoProcAmp_ColorEnable,
VideoProcAmp_WhiteBalance,
VideoProcAmp_BacklightCompensation,
VideoProcAmp_Gain
} VideoProcAmpProperty;
typedef enum tagVideoProcAmpFlags
{
VideoProcAmp_Flags_Auto = 0x0001,
VideoProcAmp_Flags_Manual = 0x0002,
} VideoProcAmpFlags;
/*****************************************************************************
* IAMVideoProcAmp interface
*/
[
object,
uuid(c6e13360-30ac-11d0-a18c-00a0c9118956),
pointer_default(unique)
]
interface IAMVideoProcAmp : IUnknown
{
HRESULT GetRange( [in] long Property, [out] long *pMin, [out] long *pMax,
[out] long *pSteppingDelta, [out] long *pDefault,
[out] long *pCapsFlags);
HRESULT Set( [in] long Property, [in] long lValue, [in] long Flags);
HRESULT Get( [in] long Property, [out] long *lValue, [out] long *Flags);
}
[
object,
uuid(56a868aa-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IAsyncReader : IUnknown
{
HRESULT RequestAllocator(
[in] IMemAllocator* pPreferred,
[in] ALLOCATOR_PROPERTIES* pProps,
[out] IMemAllocator ** ppActual);
HRESULT Request(
[in] IMediaSample* pSample,
[in] DWORD_PTR dwUser);
HRESULT WaitForNext(
[in] DWORD dwTimeout,
[out] IMediaSample** ppSample,
[out] DWORD_PTR * pdwUser);
HRESULT SyncReadAligned(
[in] IMediaSample* pSample);
HRESULT SyncRead(
[in] LONGLONG llPosition,
[in] LONG lLength,
[out, size_is(lLength)]
BYTE* pBuffer);
HRESULT Length(
[out] LONGLONG* pTotal,
[out] LONGLONG* pAvailable);
HRESULT BeginFlush(void);
HRESULT EndFlush(void);
}
[
object,
uuid(56a868ab-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IGraphVersion : IUnknown
{
HRESULT QueryVersion(LONG* pVersion);
}
[
object,
uuid(56a868ad-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IResourceConsumer : IUnknown
{
HRESULT AcquireResource(
[in] LONG idResource);
HRESULT ReleaseResource(
[in] LONG idResource);
}
[
object,
uuid(56a868ac-0ad4-11ce-b03a-0020af0ba770),
pointer_default(unique)
]
interface IResourceManager : IUnknown
{
HRESULT Register(
[in] LPCWSTR pName,
[in] LONG cResource,
[out] LONG* plToken
);
HRESULT RegisterGroup(
[in] LPCWSTR pName,
[in] LONG cResource,
[in, size_is(cResource)]
LONG* palTokens,
[out] LONG* plToken
);
HRESULT RequestResource(
[in] LONG idResource,
[in] IUnknown* pFocusObject,
[in] IResourceConsumer* pConsumer
);
HRESULT NotifyAcquire(
[in] LONG idResource,
[in] IResourceConsumer* pConsumer,
[in] HRESULT hr);
HRESULT NotifyRelease(
[in] LONG idResource,
[in] IResourceConsumer* pConsumer,
[in] BOOL bStillWant);
HRESULT CancelRequest(
[in] LONG idResource,
[in] IResourceConsumer* pConsumer);
HRESULT SetFocus(
[in] IUnknown* pFocusObject);
HRESULT ReleaseFocus(
[in] IUnknown* pFocusObject);
}
cpp_quote("#ifndef _IKsPropertySet_")
cpp_quote("#define _IKsPropertySet_")
cpp_quote("#define KSPROPERTY_SUPPORT_GET 1")
cpp_quote("#define KSPROPERTY_SUPPORT_SET 2")
[
object,
uuid(31efac30-515c-11d0-a9aa-00aa0061be93),
pointer_default(unique)
]
interface IKsPropertySet : IUnknown
{
HRESULT Set( [in] REFGUID guidPropSet,
[in] DWORD dwPropID,
[in, size_is(cbInstanceData)] LPVOID pInstanceData,
[in] DWORD cbInstanceData,
[in, size_is(cbPropData)] LPVOID pPropData,
[in] DWORD cbPropData );
HRESULT Get( [in] REFGUID guidPropSet,
[in] DWORD dwPropID,
[in, size_is(cbInstanceData)] LPVOID pInstanceData,
[in] DWORD cbInstanceData,
[out, size_is(cbPropData)] LPVOID pPropData,
[in] DWORD cbPropData,
[out] DWORD *pcbReturned );
HRESULT QuerySupported( [in] REFGUID guidPropSet,
[in] DWORD dwPropID,
[out] DWORD *pTypeSupport);
}
cpp_quote("#endif /* _IKsPropertySet_ */")