diff options
Diffstat (limited to 'dxsdk/Include/DShowIDL/vidcap.idl')
-rw-r--r-- | dxsdk/Include/DShowIDL/vidcap.idl | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/dxsdk/Include/DShowIDL/vidcap.idl b/dxsdk/Include/DShowIDL/vidcap.idl new file mode 100644 index 00000000..523bfde3 --- /dev/null +++ b/dxsdk/Include/DShowIDL/vidcap.idl @@ -0,0 +1,84 @@ +//+------------------------------------------------------------------------- +// +// Microsoft Windows +// Copyright (c) Microsoft Corporation. All rights reserved. +// +// File: vidcap.idl +// +// Contents: Video Capture and Topology Interface Definitions +// +// History: first published in XP SP2 (ISelector,IKsTopologyInfo) +// +//-------------------------------------------------------------------------- + +import "unknwn.idl"; +import "strmif.idl"; + +// The preprocessor directives here ensure that KSTOPOLOGY_CONNECTION is defined in the correct way +// Constraint is that ks.h cannot be included in the idl file. The directives below ensure that +// 1) KSTOPOLOGY_CONNECTION is locally defined for purposes of building the idl file itself. +// 2) An app can include vidcap.h and ks.h in either order. +// 3) The structure definition for KSTOPOLOGY_CONNECTION does not show up in vidcap.h since ks.h gets included. +// Look at vidcap.h to understand exactly what gets generated. +cpp_quote("#include \"ks.h\"") +cpp_quote("#ifndef _KS_") +typedef struct { + ULONG FromNode; + ULONG FromNodePin; + ULONG ToNode; + ULONG ToNodePin; +} KSTOPOLOGY_CONNECTION, *PKSTOPOLOGY_CONNECTION; +cpp_quote("#endif") + + +// IKsTopologyInfo interface +[ + object, + local, + uuid(720D4AC0-7533-11D0-A5D6-28DB04C10000), + pointer_default(unique) +] +interface IKsTopologyInfo : IUnknown +{ + HRESULT get_NumCategories([out] DWORD *pdwNumCategories); + HRESULT get_Category([in] DWORD dwIndex, [out] GUID *pCategory); + HRESULT get_NumConnections([out] DWORD *pdwNumConnections); + HRESULT get_ConnectionInfo([in] DWORD dwIndex, [out] KSTOPOLOGY_CONNECTION *pConnectionInfo); + HRESULT get_NodeName([in] DWORD dwNodeId, [out] WCHAR *pwchNodeName, [in] DWORD dwBufSize, [out] DWORD *pdwNameLen); + HRESULT get_NumNodes([out] DWORD *pdwNumNodes); + HRESULT get_NodeType([in] DWORD dwNodeId, [out] GUID *pNodeType); + HRESULT CreateNodeInstance([in] DWORD dwNodeId, [in] REFIID iid, [out] void **ppvObject); +} + + +// ISelector interface +[ + object, + local, + uuid(1ABDAECA-68B6-4F83-9371-B413907C7B9F), + pointer_default(unique) +] +interface ISelector : IUnknown +{ + HRESULT get_NumSources([out] DWORD *pdwNumSources); + HRESULT get_SourceNodeId([out] DWORD *pdwPinId); + HRESULT put_SourceNodeId([in] DWORD dwPinId); +} + + +// IKsNodeControl interface +[ + object, + local, + uuid(11737C14-24A7-4bb5-81A0-0D003813B0C4), + pointer_default(unique) +] +interface IKsNodeControl :IUnknown +{ + HRESULT put_NodeId([in] DWORD dwNodeId); + HRESULT put_KsControl([in] PVOID pKsControl); +} + + + + |