source: trunk/DirectShowSpy/DirectShowSpy.idl @ 276

Last change on this file since 276 was 276, checked in by roman, 10 years ago

Updated header (on use, applicability, redistribution)

  • Property svn:keywords set to Id
File size: 6.8 KB
Line 
1////////////////////////////////////////////////////////////
2// Copyright (C) Roman Ryltsov, 2008-2014
3// Created by Roman Ryltsov roman@alax.info, http://alax.info
4//
5// This source code is published to complement DirectShowSpy developer powertoy
6// and demonstrate the internal use of APIs and tricks powering the tool. It is
7// allowed to freely re-use the portions of the code in other projects, commercial
8// or otherwise (provided that you don’t pretend that you wrote the original tool).
9//
10// Please keep in mind that DirectShowSpy is a developer tool, it is strongly recommended
11// that it is not shipped with release grade software. It is allowed to distribute
12// DirectShowSpy if only it is not registered with Windows by default and either
13// used privately, or registered on specific throubleshooting request. The advice applies
14// to hooking methods used by DirectShowSpy in general as well.
15
16import "oaidl.idl";
17import "ocidl.idl";
18
19[
20        object,
21        uuid(6945711B-FE0F-4C54-965F-5B67969C28B7),
22        dual,
23        oleautomation,
24        nonextensible,
25        helpstring("ISpy Interface"),
26        pointer_default(unique)
27]
28interface ISpy : IDispatch
29{
30        [id(1), propget] HRESULT MonikerDisplayName([out, retval] BSTR* psMonikerDisplayName);
31        [id(2), propget] HRESULT CreationTime([out, retval] DATE* pfTime);
32        [id(3), propget] HRESULT FriendlyName([out, retval] BSTR* psFriendlyName);
33        [id(3), propput] HRESULT FriendlyName([in] BSTR sFriendlyName);
34        [id(4)] HRESULT DoPropertyFrameModal([in] LONG nParentWindowHandle);
35        [id(5)] HRESULT DoFilterGraphListModal([in] LONG nParentWindowHandle);
36        [id(6)] HRESULT OpenGraphStudioNext([in] LONG nParentWindowHandle, [out, retval] VARIANT_BOOL* pbResult);
37        [id(7)] HRESULT OpenGraphEdit([in] LONG nParentWindowHandle, [out, retval] VARIANT_BOOL* pbResult);
38        [id(8)] HRESULT ReadRunPropertyBag([in] IUnknown* pBaseFilterUnknown, [in] VARIANT_BOOL bAllowExtension, [out, retval] VARIANT* pvValue);
39};
40[
41        object,
42        uuid(34B280D7-A144-4a64-BCB9-3616896F6877),
43        dual,
44        oleautomation,
45        nonextensible,
46        helpstring("IFilterMapperSpy Interface"),
47        pointer_default(unique)
48]
49interface IFilterMapperSpy : IDispatch
50{
51};
52[
53        object,
54        uuid(14EB119F-25CE-4654-ABE1-E6742AF03F2D),
55        dual,
56        oleautomation,
57        nonextensible,
58        helpstring("ISystemDeviceEnumeratorSpy Interface"),
59        pointer_default(unique)
60]
61interface ISystemDeviceEnumeratorSpy : IDispatch
62{
63};
64[
65        object,
66        uuid(3D1AF248-DEF1-4E26-A071-FEDF15FED6A8),
67        dual,
68        oleautomation,
69        nonextensible,
70        helpstring("IFilterGraphHelper Interface"),
71        pointer_default(unique)
72]
73interface IFilterGraphHelper : IDispatch
74{
75        [id(DISPID_VALUE), propget] HRESULT FilterGraph([out, retval] IUnknown** ppFilterGraphUnknown);
76        [id(DISPID_VALUE), propput] HRESULT FilterGraph([in] IUnknown* pFilterGraphUnknown);
77        [id(1), propget] HRESULT Text([out, retval] BSTR* psText);
78        [id(2)] HRESULT DoPropertyFrameModal([in] LONG nParentWindowHandle);
79        [id(3)] HRESULT DoFilterGraphListModal([in] LONG nParentWindowHandle);
80        [id(4)] HRESULT OpenGraphStudioNext([in] LONG nParentWindowHandle, [in] BSTR sMonikerDisplayName, [out, retval] VARIANT_BOOL* pbResult);
81        [id(5)] HRESULT OpenGraphEdit([in] LONG nParentWindowHandle, [in] BSTR sMonikerDisplayName, [out, retval] VARIANT_BOOL* pbResult);
82};
83[
84        uuid(B9EC374B-834B-4DA9-BFB5-C1872CE736FF),
85        version(1.0),
86        helpstring("Alax.Info Filter Graph Spy 1.0 Type Library")
87]
88library AlaxInfoDirectShowSpy
89{
90        importlib("stdole2.tlb");
91        [
92                object,
93                uuid(ACBECDFD-D8CA-49c8-B799-D23225D5BFAD),
94                nonextensible,
95                helpstring("IFilterGraphAddRemoveHook Interface"),
96                pointer_default(unique)
97        ]
98        interface IFilterGraphAddRemoveHook : IUnknown
99        {
100                HRESULT OnAddFilter([in] ISpy* pSpy, [in] IUnknown* pBaseFilterUnknown, [in] LPCWSTR pszName, [in, out] BOOL* pbDefault);
101                HRESULT OnRemoveFilter([in] ISpy* pSpy, [in] IUnknown* pBaseFilterUnknown, [in, out] BOOL* pbDefault);
102                HRESULT OnAddSourceFilter([in] ISpy* pSpy, [in] LPCWSTR pszFileName, [in] LPCWSTR pszFilterName, [out] IUnknown** ppBaseFilterUnknown, [in, out] BOOL* pbDefault);
103                HRESULT OnAddSourceFilterForMoniker([in] ISpy* pSpy, [in] IUnknown* pMonikerUnknown, [in] IUnknown* pBindCtxUnknown, [in] LPCWSTR pszFilterName, [out] IUnknown** ppBaseFilterUnknown, [in, out] BOOL* pbDefault);
104        };
105        [
106                object,
107                uuid(D0F4C168-D09D-481e-903D-7461CE69E391),
108                nonextensible,
109                helpstring("IFilterGraphConnectHook Interface"),
110                pointer_default(unique)
111        ]
112        interface IFilterGraphConnectHook : IUnknown
113        {
114                HRESULT OnConnectDirect([in] ISpy* pSpy, [in] IUnknown* pOutputPinUnknown, [in] IUnknown* pInputPinUnknown, [in] const BYTE* pMediaTypeData, [in, out] BOOL* pbDefault);
115                HRESULT OnReconnect([in] ISpy* pSpy, [in] IUnknown* pPinUnknown, [in, out] BOOL* pbDefault);
116                HRESULT OnDisconnect([in] ISpy* pSpy, [in] IUnknown* pPinUnknown, [in, out] BOOL* pbDefault);
117                HRESULT OnConnect([in] ISpy* pSpy, [in] IUnknown* pOutputPinUnknown, [in] IUnknown* pInputPinUnknown, [in, out] BOOL* pbDefault);
118                HRESULT OnReconnectEx([in] ISpy* pSpy, [in] IUnknown* pPinUnknown, [in] const BYTE* pMediaTypeData, [in, out] BOOL* pbDefault);
119        };
120        [
121                object,
122                uuid(65FA1519-A935-4fa9-A15D-9426457E02F6),
123                nonextensible,
124                helpstring("IFilterGraphStateControlHook Interface"),
125                pointer_default(unique)
126        ]
127        interface IFilterGraphStateControlHook : IUnknown
128        {
129                HRESULT OnRun([in] ISpy* pSpy, [in, out] BOOL* pbDefault);
130                HRESULT OnPause([in] ISpy* pSpy, [in, out] BOOL* pbDefault);
131                HRESULT OnStop([in] ISpy* pSpy, [in, out] BOOL* pbDefault);
132        };
133        [
134                uuid(F552C23D-F088-41C3-A080-8464D7BB9BAD),
135                helpstring("Spy Class")
136        ]
137        coclass Spy
138        {
139                [default] interface ISpy;
140        };
141        [
142                uuid(2C281C40-8853-4a30-99D3-9DCFF2C015C9),
143                helpstring("NoThreadSpy Class")
144        ]
145        coclass NoThreadSpy
146        {
147                [default] interface ISpy;
148        };
149        [
150                uuid(B6274D9B-1AD3-4c32-83C5-35DC33CAFF47),
151                helpstring("FilterMapperSpy Class")
152        ]
153        coclass FilterMapperSpy
154        {
155                [default] interface IFilterMapperSpy;
156        };
157        [
158                uuid(AD42E3BD-7B9B-4783-9DA2-61A9ACD0D4D2),
159                helpstring("SystemDeviceEnumeratorSpy Class")
160        ]
161        coclass SystemDeviceEnumeratorSpy
162        {
163                [default] interface ISystemDeviceEnumeratorSpy;
164        };
165        [
166                uuid(5A9A684C-A891-4032-8D31-FF6EAB5A0C1E),
167                helpstring("FilterGraphHelper Class")
168        ]
169        coclass FilterGraphHelper
170        {
171                [default] interface IFilterGraphHelper;
172        };
173        [
174                object,
175                uuid(E267813C-8F29-4D69-A776-CD462494FCE4),
176                nonextensible,
177                helpstring("IRunPropertyBagAware Interface"),
178                pointer_default(unique)
179        ]
180        interface IRunPropertyBagAware : IDispatch
181        {
182                [propget, id(DISPID_VALUE)] HRESULT Value([out, retval] IUnknown** ppPropertyBagUnknown);
183        };
184        [
185                uuid(76127943-D22E-4C4E-9D9B-173C224D0EE4),
186                helpstring("RunPropertyBagPropertyPage Class")
187        ]
188        coclass RunPropertyBagPropertyPage
189        {
190                [default] interface IUnknown; //IPropertyPage;
191        };
192};
Note: See TracBrowser for help on using the repository browser.