summaryrefslogtreecommitdiffstats
path: root/dxsdk/Include/DShowIDL/vidcap.idl
diff options
context:
space:
mode:
Diffstat (limited to 'dxsdk/Include/DShowIDL/vidcap.idl')
-rw-r--r--dxsdk/Include/DShowIDL/vidcap.idl84
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);
+}
+
+
+
+