Changeset 178

User picture

Author: alax

(2009/11/02 08:16) Over 2 years ago

64-bit version, hooks, BDA hook project

Affected files

Added trunk/FilterGraphSpy/BdaHooks/AddRemoveHook.cpp

Show contents

Added trunk/FilterGraphSpy/BdaHooks/AddRemoveHook.h

Show contents

Added trunk/FilterGraphSpy/BdaHooks/AddRemoveHook.rgs

Show contents

Added trunk/FilterGraphSpy/BdaHooks/BdaHooks.cpp

Show contents

Added trunk/FilterGraphSpy/BdaHooks/BdaHooks.def

Show contents

Added trunk/FilterGraphSpy/BdaHooks/BdaHooks.idl

Show contents

Added trunk/FilterGraphSpy/BdaHooks/BdaHooks.rc

Show contents

Added trunk/FilterGraphSpy/BdaHooks/BdaHooks.rgs

Show contents

Added trunk/FilterGraphSpy/BdaHooks/BdaHooks.vcproj

Show contents

Added trunk/FilterGraphSpy/BdaHooks/BdaHooks_i.c

Show contents

Added trunk/FilterGraphSpy/BdaHooks/BdaHooks_i.h

Show contents

Added trunk/FilterGraphSpy/BdaHooks/BdaHooks_p.c

Show contents

Added trunk/FilterGraphSpy/BdaHooks/BdaHooksPS.vcproj

Show contents

Added trunk/FilterGraphSpy/BdaHooks/Common.h

Show contents

Added trunk/FilterGraphSpy/BdaHooks/ConnectHook.cpp

Show contents

Added trunk/FilterGraphSpy/BdaHooks/ConnectHook.h

Show contents

Added trunk/FilterGraphSpy/BdaHooks/ConnectHook.rgs

Show contents

Added trunk/FilterGraphSpy/BdaHooks/dlldata.c

Show contents

Added trunk/FilterGraphSpy/BdaHooks/dllmain.cpp

Show contents

Added trunk/FilterGraphSpy/BdaHooks/dllmain.h

Show contents

Added trunk/FilterGraphSpy/BdaHooks/Resource.h

Show contents

Added trunk/FilterGraphSpy/BdaHooks/StateControlHook.cpp

Show contents

Added trunk/FilterGraphSpy/BdaHooks/StateControlHook.h

Show contents

Added trunk/FilterGraphSpy/BdaHooks/StateControlHook.rgs

Show contents

Added trunk/FilterGraphSpy/BdaHooks/stdafx.cpp

Show contents

Added trunk/FilterGraphSpy/BdaHooks/stdafx.h

Show contents

Added trunk/FilterGraphSpy/BdaHooks/targetver.h

Show contents

Updated trunk/FilterGraphSpy/FilterGraphSpy.idl Download diff

177178
11
	object,
11
	object,
12
	uuid(6945711B-FE0F-4C54-965F-5B67969C28B7),
12
	uuid(6945711B-FE0F-4C54-965F-5B67969C28B7),
13
	dual,
13
	dual,
14
	oleautomation,
14
	nonextensible,
15
	nonextensible,
15
	helpstring("ISpy Interface"),
16
	helpstring("ISpy Interface"),
16
	pointer_default(unique)
17
	pointer_default(unique)
...
...
27
{
28
{
28
	importlib("stdole2.tlb");
29
	importlib("stdole2.tlb");
29
	[
30
	[
31
		object,
32
		uuid(ACBECDFD-D8CA-49c8-B799-D23225D5BFAD),
33
		nonextensible,
34
		helpstring("IFilterGraphAddRemoveHook Interface"),
35
		pointer_default(unique)
36
	]
37
	interface IFilterGraphAddRemoveHook : IUnknown
38
	{
39
		HRESULT OnAddFilter([in] ISpy* pSpy, [in] IUnknown* pBaseFilterUnknown, [in] LPCWSTR pszName, [in, out] BOOL* pbDefault);
40
		HRESULT OnRemoveFilter([in] ISpy* pSpy, [in] IUnknown* pBaseFilterUnknown, [in, out] BOOL* pbDefault);
41
		HRESULT OnAddSourceFilter([in] ISpy* pSpy, [in] LPCWSTR pszFileName, [in] LPCWSTR pszFilterName, [out] IUnknown** ppBaseFilterUnknown, [in, out] BOOL*
pbDefault);
42
		HRESULT OnAddSourceFilterForMoniker([in] ISpy* pSpy, [in] IUnknown* pMonikerUnknown, [in] IUnknown* pBindCtxUnknown, [in] LPCWSTR pszFilterName, [out]
IUnknown** ppBaseFilterUnknown, [in, out] BOOL* pbDefault);
43
	};
44
	[
45
		object,
46
		uuid(D0F4C168-D09D-481e-903D-7461CE69E391),
47
		nonextensible,
48
		helpstring("IFilterGraphConnectHook Interface"),
49
		pointer_default(unique)
50
	]
51
	interface IFilterGraphConnectHook : IUnknown
52
	{
53
		HRESULT OnConnectDirect([in] ISpy* pSpy, [in] IUnknown* pOutputPinUnknown, [in] IUnknown* pInputPinUnknown, [in] const BYTE* pMediaTypeData, [in, out] BOOL*
pbDefault);
54
		HRESULT OnReconnect([in] ISpy* pSpy, [in] IUnknown* pPinUnknown, [in, out] BOOL* pbDefault);
55
		HRESULT OnDisconnect([in] ISpy* pSpy, [in] IUnknown* pPinUnknown, [in, out] BOOL* pbDefault);
56
		HRESULT OnConnect([in] ISpy* pSpy, [in] IUnknown* pOutputPinUnknown, [in] IUnknown* pInputPinUnknown, [in, out] BOOL* pbDefault);
57
		HRESULT OnReconnectEx([in] ISpy* pSpy, [in] IUnknown* pPinUnknown, [in] const BYTE* pMediaTypeData, [in, out] BOOL* pbDefault);
58
	};
59
	[
60
		object,
61
		uuid(65FA1519-A935-4fa9-A15D-9426457E02F6),
62
		nonextensible,
63
		helpstring("IFilterGraphStateControlHook Interface"),
64
		pointer_default(unique)
65
	]
66
	interface IFilterGraphStateControlHook : IUnknown
67
	{
68
		HRESULT OnRun([in] ISpy* pSpy, [in, out] BOOL* pbDefault);
69
		HRESULT OnPause([in] ISpy* pSpy, [in, out] BOOL* pbDefault);
70
		HRESULT OnStop([in] ISpy* pSpy, [in, out] BOOL* pbDefault);
71
	};
72
	[
30
		uuid(F552C23D-F088-41C3-A080-8464D7BB9BAD),
73
		uuid(F552C23D-F088-41C3-A080-8464D7BB9BAD),
31
		helpstring("Spy Class")
74
		helpstring("Spy Class")
32
	]
75
	]

Updated trunk/FilterGraphSpy/FilterGraphSpy.rc Download diff

177178
12
#endif
12
#endif
13
#include "winres.h"
13
#include "winres.h"
14
#include "atlres.h"
14
#include "atlres.h"
15
#include "rores.rc"
15
#include "rores.rc"
16
16
17
/////////////////////////////////////////////////////////////////////////////
17
/////////////////////////////////////////////////////////////////////////////
18
#undef APSTUDIO_READONLY_SYMBOLS
18
#undef APSTUDIO_READONLY_SYMBOLS
...
...
61
//
61
//
62
62
63
VS_VERSION_INFO VERSIONINFO
63
VS_VERSION_INFO VERSIONINFO
64
 FILEVERSION  1, 0, 0, 134
64
 FILEVERSION 1, 0, 0, 201
65
 PRODUCTVERSION 1,0,0,1
65
 PRODUCTVERSION 1,0,0,1
66
 FILEFLAGSMASK 0x3fL
66
 FILEFLAGSMASK 0x3fL
67
#ifdef _DEBUG
67
#ifdef _DEBUG
...
...
80
            VALUE "Comments", "Created by Roman Ryltsov roman@alax.info"
80
            VALUE "Comments", "Created by Roman Ryltsov roman@alax.info"
81
            VALUE "CompanyName", "Roman Ryltsov"
81
            VALUE "CompanyName", "Roman Ryltsov"
82
            VALUE "FileDescription", "Alax.Info DirectShow Filter Graph Spy Module"
82
            VALUE "FileDescription", "Alax.Info DirectShow Filter Graph Spy Module"
83
            VALUE "FileVersion",  "1, 0, 0, 134\0"
83
            VALUE "FileVersion",                                                                  "1, 0, 0, 201"
84
            VALUE "InternalName", "FilterGraphSpy.dll"
84
            VALUE "InternalName", "FilterGraphSpy.dll"
85
            VALUE "LegalCopyright", "Copyright © Alax.Info, Roman Ryltsov, 2008-2009"
85
            VALUE "LegalCopyright", "Copyright © Alax.Info, Roman Ryltsov, 2008-2009"
86
            VALUE "OLESelfRegister", "Yes"
86
            VALUE "OLESelfRegister", "Yes"
...
...
127
//
127
//
128
// Generated from the TEXTINCLUDE 3 resource.
128
// Generated from the TEXTINCLUDE 3 resource.
129
//
129
//
130
1 TYPELIB "FilterGraphSpy.tlb"
130
1 TYPELIB "FilterGraphSpy.tlb"
131
131
132
/////////////////////////////////////////////////////////////////////////////
132
/////////////////////////////////////////////////////////////////////////////
133
#endif    // not APSTUDIO_INVOKED
133
#endif    // not APSTUDIO_INVOKED

Updated trunk/FilterGraphSpy/FilterGraphSpy.sln Download diff

177178
16
EndProject
16
EndProject
17
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TakeRegistryKeyOwnership",
"TakeRegistryKeyOwnership\TakeRegistryKeyOwnership.vcproj", "{853F01C8-5703-4927-AAC7-0871A0940740}"
17
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TakeRegistryKeyOwnership",
"TakeRegistryKeyOwnership\TakeRegistryKeyOwnership.vcproj", "{853F01C8-5703-4927-AAC7-0871A0940740}"
18
EndProject
18
EndProject
19
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BdaHooks", "BdaHooks\BdaHooks.vcproj",
"{42B74EE4-45E2-44E8-B3EE-6061DBCDD86D}"
20
	ProjectSection(ProjectDependencies) = postProject
21
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9} = {1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}
22
	EndProjectSection
23
EndProject
19
Global
24
Global
20
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
25
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
21
		Debug|Win32 = Debug|Win32
26
		Debug|Win32 = Debug|Win32
27
		Debug|x64 = Debug|x64
22
		Release Trace|Win32 = Release Trace|Win32
28
		Release Trace|Win32 = Release Trace|Win32
29
		Release Trace|x64 = Release Trace|x64
23
		Release|Win32 = Release|Win32
30
		Release|Win32 = Release|Win32
31
		Release|x64 = Release|x64
24
	EndGlobalSection
32
	EndGlobalSection
25
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
33
	GlobalSection(ProjectConfigurationPlatforms) = postSolution
26
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Debug|Win32.ActiveCfg = Debug|Win32
34
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Debug|Win32.ActiveCfg = Debug|Win32
35
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Debug|Win32.Build.0 = Debug|Win32
36
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Debug|x64.ActiveCfg = Debug|x64
27
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Release Trace|Win32.ActiveCfg = Release Trace|Win32
37
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Release Trace|Win32.ActiveCfg = Release Trace|Win32
28
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Release Trace|Win32.Build.0 = Release Trace|Win32
38
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Release Trace|Win32.Build.0 = Release Trace|Win32
39
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Release Trace|x64.ActiveCfg = Release Trace|x64
40
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Release Trace|x64.Build.0 = Release Trace|x64
29
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Release|Win32.ActiveCfg = Release|Win32
41
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Release|Win32.ActiveCfg = Release|Win32
42
		{1A5DA4E5-ED09-476A-9A42-538D0DDA3FB9}.Release|x64.ActiveCfg = Release|x64
30
		{E0A3323D-478E-4046-909A-AD12AD399A68}.Debug|Win32.ActiveCfg = Debug|Win32
43
		{E0A3323D-478E-4046-909A-AD12AD399A68}.Debug|Win32.ActiveCfg = Debug|Win32
44
		{E0A3323D-478E-4046-909A-AD12AD399A68}.Debug|x64.ActiveCfg = Debug|Win32
31
		{E0A3323D-478E-4046-909A-AD12AD399A68}.Release Trace|Win32.ActiveCfg = Release|Win32
45
		{E0A3323D-478E-4046-909A-AD12AD399A68}.Release Trace|Win32.ActiveCfg = Release|Win32
46
		{E0A3323D-478E-4046-909A-AD12AD399A68}.Release Trace|x64.ActiveCfg = Release|Win32
32
		{E0A3323D-478E-4046-909A-AD12AD399A68}.Release|Win32.ActiveCfg = Release|Win32
47
		{E0A3323D-478E-4046-909A-AD12AD399A68}.Release|Win32.ActiveCfg = Release|Win32
48
		{E0A3323D-478E-4046-909A-AD12AD399A68}.Release|x64.ActiveCfg = Release|Win32
33
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Debug|Win32.ActiveCfg = Debug
49
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Debug|Win32.ActiveCfg = Debug
50
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Debug|x64.ActiveCfg = Debug
34
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Release Trace|Win32.ActiveCfg = Release
51
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Release Trace|Win32.ActiveCfg = Release
35
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Release Trace|Win32.Build.0 = Release
52
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Release Trace|Win32.Build.0 = Release
53
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Release Trace|x64.ActiveCfg = Release
54
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Release Trace|x64.Build.0 = Release
36
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Release|Win32.ActiveCfg = Release
55
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Release|Win32.ActiveCfg = Release
56
		{F7ED386C-A3F0-4B7D-ABBD-D0364FB44DAC}.Release|x64.ActiveCfg = Release
37
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Debug|Win32.ActiveCfg = Debug|Win32
57
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Debug|Win32.ActiveCfg = Debug|Win32
58
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Debug|x64.ActiveCfg = Debug|x64
38
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Release Trace|Win32.ActiveCfg = Release|Win32
59
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Release Trace|Win32.ActiveCfg = Release|Win32
39
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Release Trace|Win32.Build.0 = Release|Win32
60
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Release Trace|Win32.Build.0 = Release|Win32
61
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Release Trace|x64.ActiveCfg = Release|x64
62
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Release Trace|x64.Build.0 = Release|x64
40
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Release|Win32.ActiveCfg = Release|Win32
63
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Release|Win32.ActiveCfg = Release|Win32
64
		{27D9723B-C970-4185-A448-0E46EBCA0E7A}.Release|x64.ActiveCfg = Release|x64
41
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Debug|Win32.ActiveCfg = Debug|Win32
65
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Debug|Win32.ActiveCfg = Debug|Win32
42
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Debug|Win32.Build.0 = Debug|Win32
66
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Debug|Win32.Build.0 = Debug|Win32
67
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Debug|x64.ActiveCfg = Debug|Win32
68
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Debug|x64.Build.0 = Debug|Win32
43
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release Trace|Win32.ActiveCfg = Release|Win32
69
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release Trace|Win32.ActiveCfg = Release|Win32
44
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release Trace|Win32.Build.0 = Release|Win32
70
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release Trace|Win32.Build.0 = Release|Win32
71
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release Trace|x64.ActiveCfg = Release|Win32
72
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release Trace|x64.Build.0 = Release|Win32
45
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release|Win32.ActiveCfg = Release|Win32
73
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release|Win32.ActiveCfg = Release|Win32
46
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release|Win32.Build.0 = Release|Win32
74
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release|Win32.Build.0 = Release|Win32
75
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release|x64.ActiveCfg = Release|Win32
76
		{F6797714-CC58-4579-A17E-CCB7EE82CBC7}.Release|x64.Build.0 = Release|Win32
47
		{853F01C8-5703-4927-AAC7-0871A0940740}.Debug|Win32.ActiveCfg = Debug|Win32
77
		{853F01C8-5703-4927-AAC7-0871A0940740}.Debug|Win32.ActiveCfg = Debug|Win32
48
		{853F01C8-5703-4927-AAC7-0871A0940740}.Debug|Win32.Build.0 = Debug|Win32
78
		{853F01C8-5703-4927-AAC7-0871A0940740}.Debug|Win32.Build.0 = Debug|Win32
79
		{853F01C8-5703-4927-AAC7-0871A0940740}.Debug|x64.ActiveCfg = Debug|Win32
80
		{853F01C8-5703-4927-AAC7-0871A0940740}.Debug|x64.Build.0 = Debug|Win32
49
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release Trace|Win32.ActiveCfg = Release|Win32
81
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release Trace|Win32.ActiveCfg = Release|Win32
50
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release Trace|Win32.Build.0 = Release|Win32
82
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release Trace|Win32.Build.0 = Release|Win32
83
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release Trace|x64.ActiveCfg = Release|Win32
84
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release Trace|x64.Build.0 = Release|Win32
51
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release|Win32.ActiveCfg = Release|Win32
85
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release|Win32.ActiveCfg = Release|Win32
52
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release|Win32.Build.0 = Release|Win32
86
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release|Win32.Build.0 = Release|Win32
87
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release|x64.ActiveCfg = Release|Win32
88
		{853F01C8-5703-4927-AAC7-0871A0940740}.Release|x64.Build.0 = Release|Win32
89
		{42B74EE4-45E2-44E8-B3EE-6061DBCDD86D}.Debug|Win32.ActiveCfg = Debug|Win32
90
		{42B74EE4-45E2-44E8-B3EE-6061DBCDD86D}.Debug|Win32.Build.0 = Debug|Win32
91
		{42B74EE4-45E2-44E8-B3EE-6061DBCDD86D}.Debug|x64.ActiveCfg = Debug|x64
92
		{42B74EE4-45E2-44E8-B3EE-6061DBCDD86D}.Release Trace|Win32.ActiveCfg = Release|Win32
93
		{42B74EE4-45E2-44E8-B3EE-6061DBCDD86D}.Release Trace|Win32.Build.0 = Release|Win32
94
		{42B74EE4-45E2-44E8-B3EE-6061DBCDD86D}.Release Trace|x64.ActiveCfg = Release|x64
95
		{42B74EE4-45E2-44E8-B3EE-6061DBCDD86D}.Release|Win32.ActiveCfg = Release|Win32
96
		{42B74EE4-45E2-44E8-B3EE-6061DBCDD86D}.Release|Win32.Build.0 = Release|Win32
97
		{42B74EE4-45E2-44E8-B3EE-6061DBCDD86D}.Release|x64.ActiveCfg = Release|x64
53
	EndGlobalSection
98
	EndGlobalSection
54
	GlobalSection(SolutionProperties) = preSolution
99
	GlobalSection(SolutionProperties) = preSolution
55
		HideSolutionNode = FALSE
100
		HideSolutionNode = FALSE

Updated trunk/FilterGraphSpy/FilterGraphSpy.vcproj Download diff

177178
11
		<Platform
11
		<Platform
12
			Name="Win32"
12
			Name="Win32"
13
		/>
13
		/>
14
		<Platform
15
			Name="x64"
16
		/>
14
	</Platforms>
17
	</Platforms>
15
	<ToolFiles>
18
	<ToolFiles>
16
	</ToolFiles>
19
	</ToolFiles>
17
	<Configurations>
20
	<Configurations>
18
		<Configuration
21
		<Configuration
19
			Name="Debug|Win32"
22
			Name="Debug|Win32"
20
			OutputDirectory="$(ConfigurationName)"
23
			OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)"
21
			IntermediateDirectory="$(ConfigurationName)\$(ProjectName)"
24
			IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\$(ProjectName)"
22
			ConfigurationType="2"
25
			ConfigurationType="2"
23
			UseOfATL="2"
26
			UseOfATL="2"
24
			ATLMinimizesCRunTimeLibraryUsage="false"
27
			ATLMinimizesCRunTimeLibraryUsage="false"
...
...
107
		</Configuration>
110
		</Configuration>
108
		<Configuration
111
		<Configuration
109
			Name="Release|Win32"
112
			Name="Release|Win32"
110
			OutputDirectory="$(ConfigurationName)"
113
			OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)"
111
			IntermediateDirectory="$(ConfigurationName)\$(ProjectName)"
114
			IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\$(ProjectName)"
112
			ConfigurationType="2"
115
			ConfigurationType="2"
113
			UseOfATL="1"
116
			UseOfATL="1"
114
			ATLMinimizesCRunTimeLibraryUsage="false"
117
			ATLMinimizesCRunTimeLibraryUsage="false"
...
...
206
		</Configuration>
209
		</Configuration>
207
		<Configuration
210
		<Configuration
208
			Name="Release Trace|Win32"
211
			Name="Release Trace|Win32"
209
			OutputDirectory="$(ConfigurationName)"
212
			OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)"
210
			IntermediateDirectory="$(ConfigurationName)\$(ProjectName)"
213
			IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\$(ProjectName)"
211
			ConfigurationType="2"
214
			ConfigurationType="2"
212
			UseOfATL="1"
215
			UseOfATL="1"
213
			ATLMinimizesCRunTimeLibraryUsage="false"
216
			ATLMinimizesCRunTimeLibraryUsage="false"
...
...
303
				Name="VCPostBuildEventTool"
306
				Name="VCPostBuildEventTool"
304
			/>
307
			/>
305
		</Configuration>
308
		</Configuration>
309
		<Configuration
310
			Name="Debug|x64"
311
			OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)"
312
			IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\$(ProjectName)"
313
			ConfigurationType="2"
314
			UseOfATL="2"
315
			ATLMinimizesCRunTimeLibraryUsage="false"
316
			CharacterSet="1"
317
			>
318
			<Tool
319
				Name="VCPreBuildEventTool"
320
			/>
321
			<Tool
322
				Name="VCCustomBuildTool"
323
			/>
324
			<Tool
325
				Name="VCXMLDataGeneratorTool"
326
			/>
327
			<Tool
328
				Name="VCWebServiceProxyGeneratorTool"
329
			/>
330
			<Tool
331
				Name="VCMIDLTool"
332
				PreprocessorDefinitions="_DEBUG"
333
				MkTypLibCompatible="false"
334
				TargetEnvironment="3"
335
				GenerateStublessProxies="true"
336
				TypeLibraryName="$(IntDir)/FilterGraphSpy.tlb"
337
				HeaderFileName="FilterGraphSpy_i.h"
338
				DLLDataFileName=""
339
				InterfaceIdentifierFileName="FilterGraphSpy_i.c"
340
				ProxyFileName="FilterGraphSpy_p.c"
341
			/>
342
			<Tool
343
				Name="VCCLCompilerTool"
344
				Optimization="0"
345
				PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL"
346
				MinimalRebuild="true"
347
				ExceptionHandling="2"
348
				BasicRuntimeChecks="3"
349
				RuntimeLibrary="3"
350
				UsePrecompiledHeader="2"
351
				WarningLevel="3"
352
				DebugInformationFormat="3"
353
			/>
354
			<Tool
355
				Name="VCManagedResourceCompilerTool"
356
			/>
357
			<Tool
358
				Name="VCResourceCompilerTool"
359
				PreprocessorDefinitions="_DEBUG"
360
				Culture="1033"
361
				AdditionalIncludeDirectories="$(IntDir)"
362
			/>
363
			<Tool
364
				Name="VCPreLinkEventTool"
365
			/>
366
			<Tool
367
				Name="VCLinkerTool"
368
				RegisterOutput="true"
369
				IgnoreImportLibrary="true"
370
				LinkIncremental="2"
371
				ModuleDefinitionFile=".\FilterGraphSpy.def"
372
				GenerateDebugInformation="true"
373
				SubSystem="2"
374
				TargetMachine="17"
375
			/>
376
			<Tool
377
				Name="VCALinkTool"
378
			/>
379
			<Tool
380
				Name="VCManifestTool"
381
			/>
382
			<Tool
383
				Name="VCXDCMakeTool"
384
			/>
385
			<Tool
386
				Name="VCBscMakeTool"
387
			/>
388
			<Tool
389
				Name="VCFxCopTool"
390
			/>
391
			<Tool
392
				Name="VCAppVerifierTool"
393
			/>
394
			<Tool
395
				Name="VCPostBuildEventTool"
396
			/>
397
		</Configuration>
398
		<Configuration
399
			Name="Release|x64"
400
			OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)"
401
			IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\$(ProjectName)"
402
			ConfigurationType="2"
403
			UseOfATL="1"
404
			ATLMinimizesCRunTimeLibraryUsage="false"
405
			CharacterSet="1"
406
			WholeProgramOptimization="1"
407
			>
408
			<Tool
409
				Name="VCPreBuildEventTool"
410
			/>
411
			<Tool
412
				Name="VCCustomBuildTool"
413
			/>
414
			<Tool
415
				Name="VCXMLDataGeneratorTool"
416
			/>
417
			<Tool
418
				Name="VCWebServiceProxyGeneratorTool"
419
			/>
420
			<Tool
421
				Name="VCMIDLTool"
422
				PreprocessorDefinitions="NDEBUG"
423
				MkTypLibCompatible="false"
424
				TargetEnvironment="3"
425
				GenerateStublessProxies="true"
426
				TypeLibraryName="$(IntDir)/FilterGraphSpy.tlb"
427
				HeaderFileName="FilterGraphSpy_i.h"
428
				DLLDataFileName=""
429
				InterfaceIdentifierFileName="FilterGraphSpy_i.c"
430
				ProxyFileName="FilterGraphSpy_p.c"
431
			/>
432
			<Tool
433
				Name="VCCLCompilerTool"
434
				Optimization="3"
435
				InlineFunctionExpansion="2"
436
				EnableIntrinsicFunctions="true"
437
				FavorSizeOrSpeed="2"
438
				OmitFramePointers="true"
439
				EnableFiberSafeOptimizations="true"
440
				WholeProgramOptimization="true"
441
				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL"
442
				StringPooling="true"
443
				ExceptionHandling="2"
444
				RuntimeLibrary="0"
445
				UsePrecompiledHeader="2"
446
				WarningLevel="3"
447
				DebugInformationFormat="3"
448
			/>
449
			<Tool
450
				Name="VCManagedResourceCompilerTool"
451
			/>
452
			<Tool
453
				Name="VCResourceCompilerTool"
454
				PreprocessorDefinitions="NDEBUG"
455
				Culture="1033"
456
				AdditionalIncludeDirectories="$(IntDir)"
457
			/>
458
			<Tool
459
				Name="VCPreLinkEventTool"
460
			/>
461
			<Tool
462
				Name="VCLinkerTool"
463
				RegisterOutput="true"
464
				IgnoreImportLibrary="true"
465
				LinkIncremental="1"
466
				ModuleDefinitionFile=".\FilterGraphSpy.def"
467
				DelayLoadDLLs="dbghelp.dll"
468
				GenerateDebugInformation="true"
469
				SubSystem="2"
470
				OptimizeReferences="2"
471
				EnableCOMDATFolding="2"
472
				TargetMachine="17"
473
			/>
474
			<Tool
475
				Name="VCALinkTool"
476
			/>
477
			<Tool
478
				Name="VCManifestTool"
479
			/>
480
			<Tool
481
				Name="VCXDCMakeTool"
482
			/>
483
			<Tool
484
				Name="VCBscMakeTool"
485
			/>
486
			<Tool
487
				Name="VCFxCopTool"
488
			/>
489
			<Tool
490
				Name="VCAppVerifierTool"
491
			/>
492
			<Tool
493
				Name="VCPostBuildEventTool"
494
			/>
495
		</Configuration>
496
		<Configuration
497
			Name="Release Trace|x64"
498
			OutputDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)"
499
			IntermediateDirectory="$(SolutionDir)$(ConfigurationName)\$(PlatformName)\$(ProjectName)"
500
			ConfigurationType="2"
501
			UseOfATL="1"
502
			ATLMinimizesCRunTimeLibraryUsage="false"
503
			CharacterSet="1"
504
			WholeProgramOptimization="1"
505
			>
506
			<Tool
507
				Name="VCPreBuildEventTool"
508
			/>
509
			<Tool
510
				Name="VCCustomBuildTool"
511
			/>
512
			<Tool
513
				Name="VCXMLDataGeneratorTool"
514
			/>
515
			<Tool
516
				Name="VCWebServiceProxyGeneratorTool"
517
			/>
518
			<Tool
519
				Name="VCMIDLTool"
520
				PreprocessorDefinitions="NDEBUG"
521
				MkTypLibCompatible="false"
522
				TargetEnvironment="3"
523
				GenerateStublessProxies="true"
524
				TypeLibraryName="$(IntDir)/FilterGraphSpy.tlb"
525
				HeaderFileName="FilterGraphSpy_i.h"
526
				DLLDataFileName=""
527
				InterfaceIdentifierFileName="FilterGraphSpy_i.c"
528
				ProxyFileName="FilterGraphSpy_p.c"
529
			/>
530
			<Tool
531
				Name="VCCLCompilerTool"
532
				Optimization="3"
533
				InlineFunctionExpansion="2"
534
				EnableIntrinsicFunctions="true"
535
				FavorSizeOrSpeed="2"
536
				OmitFramePointers="true"
537
				EnableFiberSafeOptimizations="true"
538
				WholeProgramOptimization="true"
539
				PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_TRACE=1;_TRACELEVEL=4"
540
				StringPooling="true"
541
				ExceptionHandling="2"
542
				RuntimeLibrary="0"
543
				UsePrecompiledHeader="2"
544
				WarningLevel="3"
545
				DebugInformationFormat="3"
546
			/>
547
			<Tool
548
				Name="VCManagedResourceCompilerTool"
549
			/>
550
			<Tool
551
				Name="VCResourceCompilerTool"
552
				PreprocessorDefinitions="NDEBUG"
553
				Culture="1033"
554
				AdditionalIncludeDirectories="$(IntDir)"
555
			/>
556
			<Tool
557
				Name="VCPreLinkEventTool"
558
			/>
559
			<Tool
560
				Name="VCLinkerTool"
561
				RegisterOutput="true"
562
				IgnoreImportLibrary="true"
563
				LinkIncremental="1"
564
				ModuleDefinitionFile=".\FilterGraphSpy.def"
565
				DelayLoadDLLs="dbghelp.dll"
566
				GenerateDebugInformation="true"
567
				SubSystem="2"
568
				OptimizeReferences="2"
569
				EnableCOMDATFolding="2"
570
				TargetMachine="17"
571
			/>
572
			<Tool
573
				Name="VCALinkTool"
574
			/>
575
			<Tool
576
				Name="VCManifestTool"
577
			/>
578
			<Tool
579
				Name="VCXDCMakeTool"
580
			/>
581
			<Tool
582
				Name="VCBscMakeTool"
583
			/>
584
			<Tool
585
				Name="VCFxCopTool"
586
			/>
587
			<Tool
588
				Name="VCAppVerifierTool"
589
			/>
590
			<Tool
591
				Name="VCPostBuildEventTool"
592
			/>
593
		</Configuration>
306
	</Configurations>
594
	</Configurations>
307
	<References>
595
	<References>
308
	</References>
596
	</References>
...
...
342
						CompileAsManaged="0"
630
						CompileAsManaged="0"
343
					/>
631
					/>
344
				</FileConfiguration>
632
				</FileConfiguration>
633
				<FileConfiguration
634
					Name="Debug|x64"
635
					>
636
					<Tool
637
						Name="VCCLCompilerTool"
638
						UsePrecompiledHeader="0"
639
						CompileAsManaged="0"
640
					/>
641
				</FileConfiguration>
642
				<FileConfiguration
643
					Name="Release|x64"
644
					>
645
					<Tool
646
						Name="VCCLCompilerTool"
647
						UsePrecompiledHeader="0"
648
						CompileAsManaged="0"
649
					/>
650
				</FileConfiguration>
651
				<FileConfiguration
652
					Name="Release Trace|x64"
653
					>
654
					<Tool
655
						Name="VCCLCompilerTool"
656
						UsePrecompiledHeader="0"
657
						CompileAsManaged="0"
658
					/>
659
				</FileConfiguration>
345
			</File>
660
			</File>
346
			<File
661
			<File
347
				RelativePath=".\FilterGraphSpy.cpp"
662
				RelativePath=".\FilterGraphSpy.cpp"
...
...
386
						UsePrecompiledHeader="1"
701
						UsePrecompiledHeader="1"
387
					/>
702
					/>
388
				</FileConfiguration>
703
				</FileConfiguration>
704
				<FileConfiguration
705
					Name="Debug|x64"
706
					>
707
					<Tool
708
						Name="VCCLCompilerTool"
709
						UsePrecompiledHeader="1"
710
					/>
711
				</FileConfiguration>
712
				<FileConfiguration
713
					Name="Release|x64"
714
					>
715
					<Tool
716
						Name="VCCLCompilerTool"
717
						UsePrecompiledHeader="1"
718
					/>
719
				</FileConfiguration>
720
				<FileConfiguration
721
					Name="Release Trace|x64"
722
					>
723
					<Tool
724
						Name="VCCLCompilerTool"
725
						UsePrecompiledHeader="1"
726
					/>
727
				</FileConfiguration>
389
			</File>
728
			</File>
390
		</Filter>
729
		</Filter>
391
		<Filter
730
		<Filter
...
...
466
						CompileAsManaged="0"
805
						CompileAsManaged="0"
467
					/>
806
					/>
468
				</FileConfiguration>
807
				</FileConfiguration>
808
				<FileConfiguration
809
					Name="Debug|x64"
810
					>
811
					<Tool
812
						Name="VCCLCompilerTool"
813
						UsePrecompiledHeader="0"
814
						CompileAsManaged="0"
815
					/>
816
				</FileConfiguration>
817
				<FileConfiguration
818
					Name="Release|x64"
819
					>
820
					<Tool
821
						Name="VCCLCompilerTool"
822
						UsePrecompiledHeader="0"
823
						CompileAsManaged="0"
824
					/>
825
				</FileConfiguration>
826
				<FileConfiguration
827
					Name="Release Trace|x64"
828
					>
829
					<Tool
830
						Name="VCCLCompilerTool"
831
						UsePrecompiledHeader="0"
832
						CompileAsManaged="0"
833
					/>
834
				</FileConfiguration>
469
			</File>
835
			</File>
470
			<File
836
			<File
471
				RelativePath=".\FilterGraphSpy_i.h"
837
				RelativePath=".\FilterGraphSpy_i.h"

Updated trunk/FilterGraphSpy/FilterGraphSpy_i.c Download diff

177178
6
6
7
7
8
 /* File created by MIDL compiler version 7.00.0500 */
8
 /* File created by MIDL compiler version 7.00.0500 */
9
/* at Mon Jun 22 10:09:59 2009
9
/* at Mon Nov 02 10:09:50 2009
10
 */
10
 */
11
/* Compiler settings for .\FilterGraphSpy.idl:
11
/* Compiler settings for .\FilterGraphSpy.idl:
12
    Oicf, W1, Zp8, env=Win32 (32b run)
12
    Oicf, W1, Zp8, env=Win32 (32b run)
...
...
73
MIDL_DEFINE_GUID(IID, LIBID_AlaxInfoFilterGraphSpy,0xB9EC374B,0x834B,0x4DA9,0xBF,0xB5,0xC1,0x87,0x2C,0xE7,0x36,0xFF);
73
MIDL_DEFINE_GUID(IID, LIBID_AlaxInfoFilterGraphSpy,0xB9EC374B,0x834B,0x4DA9,0xBF,0xB5,0xC1,0x87,0x2C,0xE7,0x36,0xFF);
74
74
75
75
76
MIDL_DEFINE_GUID(IID, IID_IFilterGraphAddRemoveHook,0xACBECDFD,0xD8CA,0x49c8,0xB7,0x99,0xD2,0x32,0x25,0xD5,0xBF,0xAD);
77
78
79
MIDL_DEFINE_GUID(IID, IID_IFilterGraphConnectHook,0xD0F4C168,0xD09D,0x481e,0x90,0x3D,0x74,0x61,0xCE,0x69,0xE3,0x91);
80
81
82
MIDL_DEFINE_GUID(IID, IID_IFilterGraphStateControlHook,0x65FA1519,0xA935,0x4fa9,0xA1,0x5D,0x94,0x26,0x45,0x7E,0x02,0xF6);
83
84
76
MIDL_DEFINE_GUID(CLSID, CLSID_Spy,0xF552C23D,0xF088,0x41C3,0xA0,0x80,0x84,0x64,0xD7,0xBB,0x9B,0xAD);
85
MIDL_DEFINE_GUID(CLSID, CLSID_Spy,0xF552C23D,0xF088,0x41C3,0xA0,0x80,0x84,0x64,0xD7,0xBB,0x9B,0xAD);
77
86
78
87

Updated trunk/FilterGraphSpy/FilterGraphSpy_i.h Download diff

177178
4
4
5
5
6
 /* File created by MIDL compiler version 7.00.0500 */
6
 /* File created by MIDL compiler version 7.00.0500 */
7
/* at Mon Jun 22 10:09:59 2009
7
/* at Mon Nov 02 10:09:50 2009
8
 */
8
 */
9
/* Compiler settings for .\FilterGraphSpy.idl:
9
/* Compiler settings for .\FilterGraphSpy.idl:
10
    Oicf, W1, Zp8, env=Win32 (32b run)
10
    Oicf, W1, Zp8, env=Win32 (32b run)
...
...
51
#endif 	/* __ISpy_FWD_DEFINED__ */
51
#endif 	/* __ISpy_FWD_DEFINED__ */
52
52
53
53
54
#ifndef __IFilterGraphAddRemoveHook_FWD_DEFINED__
55
#define __IFilterGraphAddRemoveHook_FWD_DEFINED__
56
typedef interface IFilterGraphAddRemoveHook IFilterGraphAddRemoveHook;
57
#endif 	/* __IFilterGraphAddRemoveHook_FWD_DEFINED__ */
58
59
60
#ifndef __IFilterGraphConnectHook_FWD_DEFINED__
61
#define __IFilterGraphConnectHook_FWD_DEFINED__
62
typedef interface IFilterGraphConnectHook IFilterGraphConnectHook;
63
#endif 	/* __IFilterGraphConnectHook_FWD_DEFINED__ */
64
65
66
#ifndef __IFilterGraphStateControlHook_FWD_DEFINED__
67
#define __IFilterGraphStateControlHook_FWD_DEFINED__
68
typedef interface IFilterGraphStateControlHook IFilterGraphStateControlHook;
69
#endif 	/* __IFilterGraphStateControlHook_FWD_DEFINED__ */
70
71
54
#ifndef __Spy_FWD_DEFINED__
72
#ifndef __Spy_FWD_DEFINED__
55
#define __Spy_FWD_DEFINED__
73
#define __Spy_FWD_DEFINED__
56
74
...
...
88
#define __ISpy_INTERFACE_DEFINED__
106
#define __ISpy_INTERFACE_DEFINED__
89
107
90
/* interface ISpy */
108
/* interface ISpy */
91
/* [unique][helpstring][nonextensible][dual][uuid][object] */ 
109
/* [unique][helpstring][nonextensible][oleautomation][dual][uuid][object] */ 
92
110
93
111
94
EXTERN_C const IID IID_ISpy;
112
EXTERN_C const IID IID_ISpy;
...
...
205
223
206
EXTERN_C const IID LIBID_AlaxInfoFilterGraphSpy;
224
EXTERN_C const IID LIBID_AlaxInfoFilterGraphSpy;
207
225
226
#ifndef __IFilterGraphAddRemoveHook_INTERFACE_DEFINED__
227
#define __IFilterGraphAddRemoveHook_INTERFACE_DEFINED__
228
229
/* interface IFilterGraphAddRemoveHook */
230
/* [unique][helpstring][nonextensible][uuid][object] */ 
231
232
233
EXTERN_C const IID IID_IFilterGraphAddRemoveHook;
234
235
#if defined(__cplusplus) && !defined(CINTERFACE)
236
    
237
    MIDL_INTERFACE("ACBECDFD-D8CA-49c8-B799-D23225D5BFAD")
238
    IFilterGraphAddRemoveHook : public IUnknown
239
    {
240
    public:
241
        virtual HRESULT STDMETHODCALLTYPE OnAddFilter( 
242
            /* [in] */ ISpy *pSpy,
243
            /* [in] */ IUnknown *pBaseFilterUnknown,
244
            /* [in] */ LPCWSTR pszName,
245
            /* [out][in] */ BOOL *pbDefault) = 0;
246
        
247
        virtual HRESULT STDMETHODCALLTYPE OnRemoveFilter( 
248
            /* [in] */ ISpy *pSpy,
249
            /* [in] */ IUnknown *pBaseFilterUnknown,
250
            /* [out][in] */ BOOL *pbDefault) = 0;
251
        
252
        virtual HRESULT STDMETHODCALLTYPE OnAddSourceFilter( 
253
            /* [in] */ ISpy *pSpy,
254
            /* [in] */ LPCWSTR pszFileName,
255
            /* [in] */ LPCWSTR pszFilterName,
256
            /* [out] */ IUnknown **ppBaseFilterUnknown,
257
            /* [out][in] */ BOOL *pbDefault) = 0;
258
        
259
        virtual HRESULT STDMETHODCALLTYPE OnAddSourceFilterForMoniker( 
260
            /* [in] */ ISpy *pSpy,
261
            /* [in] */ IUnknown *pMonikerUnknown,
262
            /* [in] */ IUnknown *pBindCtxUnknown,
263
            /* [in] */ LPCWSTR pszFilterName,
264
            /* [out] */ IUnknown **ppBaseFilterUnknown,
265
            /* [out][in] */ BOOL *pbDefault) = 0;
266
        
267
    };
268
    
269
#else 	/* C style interface */
270
271
    typedef struct IFilterGraphAddRemoveHookVtbl
272
    {
273
        BEGIN_INTERFACE
274
        
275
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
276
            IFilterGraphAddRemoveHook * This,
277
            /* [in] */ REFIID riid,
278
            /* [iid_is][out] */ 
279
            __RPC__deref_out  void **ppvObject);
280
        
281
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
282
            IFilterGraphAddRemoveHook * This);
283
        
284
        ULONG ( STDMETHODCALLTYPE *Release )( 
285
            IFilterGraphAddRemoveHook * This);
286
        
287
        HRESULT ( STDMETHODCALLTYPE *OnAddFilter )( 
288
            IFilterGraphAddRemoveHook * This,
289
            /* [in] */ ISpy *pSpy,
290
            /* [in] */ IUnknown *pBaseFilterUnknown,
291
            /* [in] */ LPCWSTR pszName,
292
            /* [out][in] */ BOOL *pbDefault);
293
        
294
        HRESULT ( STDMETHODCALLTYPE *OnRemoveFilter )( 
295
            IFilterGraphAddRemoveHook * This,
296
            /* [in] */ ISpy *pSpy,
297
            /* [in] */ IUnknown *pBaseFilterUnknown,
298
            /* [out][in] */ BOOL *pbDefault);
299
        
300
        HRESULT ( STDMETHODCALLTYPE *OnAddSourceFilter )( 
301
            IFilterGraphAddRemoveHook * This,
302
            /* [in] */ ISpy *pSpy,
303
            /* [in] */ LPCWSTR pszFileName,
304
            /* [in] */ LPCWSTR pszFilterName,
305
            /* [out] */ IUnknown **ppBaseFilterUnknown,
306
            /* [out][in] */ BOOL *pbDefault);
307
        
308
        HRESULT ( STDMETHODCALLTYPE *OnAddSourceFilterForMoniker )( 
309
            IFilterGraphAddRemoveHook * This,
310
            /* [in] */ ISpy *pSpy,
311
            /* [in] */ IUnknown *pMonikerUnknown,
312
            /* [in] */ IUnknown *pBindCtxUnknown,
313
            /* [in] */ LPCWSTR pszFilterName,
314
            /* [out] */ IUnknown **ppBaseFilterUnknown,
315
            /* [out][in] */ BOOL *pbDefault);
316
        
317
        END_INTERFACE
318
    } IFilterGraphAddRemoveHookVtbl;
319
320
    interface IFilterGraphAddRemoveHook
321
    {
322
        CONST_VTBL struct IFilterGraphAddRemoveHookVtbl *lpVtbl;
323
    };
324
325
    
326
327
#ifdef COBJMACROS
328
329
330
#define IFilterGraphAddRemoveHook_QueryInterface(This,riid,ppvObject)	\
331
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
332
333
#define IFilterGraphAddRemoveHook_AddRef(This)	\
334
    ( (This)->lpVtbl -> AddRef(This) ) 
335
336
#define IFilterGraphAddRemoveHook_Release(This)	\
337
    ( (This)->lpVtbl -> Release(This) ) 
338
339
340
#define IFilterGraphAddRemoveHook_OnAddFilter(This,pSpy,pBaseFilterUnknown,pszName,pbDefault)	\
341
    ( (This)->lpVtbl -> OnAddFilter(This,pSpy,pBaseFilterUnknown,pszName,pbDefault) ) 
342
343
#define IFilterGraphAddRemoveHook_OnRemoveFilter(This,pSpy,pBaseFilterUnknown,pbDefault)	\
344
    ( (This)->lpVtbl -> OnRemoveFilter(This,pSpy,pBaseFilterUnknown,pbDefault) ) 
345
346
#define IFilterGraphAddRemoveHook_OnAddSourceFilter(This,pSpy,pszFileName,pszFilterName,ppBaseFilterUnknown,pbDefault)	\
347
    ( (This)->lpVtbl -> OnAddSourceFilter(This,pSpy,pszFileName,pszFilterName,ppBaseFilterUnknown,pbDefault) ) 
348
349
#define IFilterGraphAddRemoveHook_OnAddSourceFilterForMoniker(This,pSpy,pMonikerUnknown,pBindCtxUnknown,pszFilterName,ppBaseFilterUnknown,pbDefault)	\
350
    ( (This)->lpVtbl -> OnAddSourceFilterForMoniker(This,pSpy,pMonikerUnknown,pBindCtxUnknown,pszFilterName,ppBaseFilterUnknown,pbDefault) ) 
351
352
#endif /* COBJMACROS */
353
354
355
#endif 	/* C style interface */
356
357
358
359
360
#endif 	/* __IFilterGraphAddRemoveHook_INTERFACE_DEFINED__ */
361
362
363
#ifndef __IFilterGraphConnectHook_INTERFACE_DEFINED__
364
#define __IFilterGraphConnectHook_INTERFACE_DEFINED__
365
366
/* interface IFilterGraphConnectHook */
367
/* [unique][helpstring][nonextensible][uuid][object] */ 
368
369
370
EXTERN_C const IID IID_IFilterGraphConnectHook;
371
372
#if defined(__cplusplus) && !defined(CINTERFACE)
373
    
374
    MIDL_INTERFACE("D0F4C168-D09D-481e-903D-7461CE69E391")
375
    IFilterGraphConnectHook : public IUnknown
376
    {
377
    public:
378
        virtual HRESULT STDMETHODCALLTYPE OnConnectDirect( 
379
            /* [in] */ ISpy *pSpy,
380
            /* [in] */ IUnknown *pOutputPinUnknown,
381
            /* [in] */ IUnknown *pInputPinUnknown,
382
            /* [in] */ const BYTE *pMediaTypeData,
383
            /* [out][in] */ BOOL *pbDefault) = 0;
384
        
385
        virtual HRESULT STDMETHODCALLTYPE OnReconnect( 
386
            /* [in] */ ISpy *pSpy,
387
            /* [in] */ IUnknown *pPinUnknown,
388
            /* [out][in] */ BOOL *pbDefault) = 0;
389
        
390
        virtual HRESULT STDMETHODCALLTYPE OnDisconnect( 
391
            /* [in] */ ISpy *pSpy,
392
            /* [in] */ IUnknown *pPinUnknown,
393
            /* [out][in] */ BOOL *pbDefault) = 0;
394
        
395
        virtual HRESULT STDMETHODCALLTYPE OnConnect( 
396
            /* [in] */ ISpy *pSpy,
397
            /* [in] */ IUnknown *pOutputPinUnknown,
398
            /* [in] */ IUnknown *pInputPinUnknown,
399
            /* [out][in] */ BOOL *pbDefault) = 0;
400
        
401
        virtual HRESULT STDMETHODCALLTYPE OnReconnectEx( 
402
            /* [in] */ ISpy *pSpy,
403
            /* [in] */ IUnknown *pPinUnknown,
404
            /* [in] */ const BYTE *pMediaTypeData,
405
            /* [out][in] */ BOOL *pbDefault) = 0;
406
        
407
    };
408
    
409
#else 	/* C style interface */
410
411
    typedef struct IFilterGraphConnectHookVtbl
412
    {
413
        BEGIN_INTERFACE
414
        
415
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
416
            IFilterGraphConnectHook * This,
417
            /* [in] */ REFIID riid,
418
            /* [iid_is][out] */ 
419
            __RPC__deref_out  void **ppvObject);
420
        
421
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
422
            IFilterGraphConnectHook * This);
423
        
424
        ULONG ( STDMETHODCALLTYPE *Release )( 
425
            IFilterGraphConnectHook * This);
426
        
427
        HRESULT ( STDMETHODCALLTYPE *OnConnectDirect )( 
428
            IFilterGraphConnectHook * This,
429
            /* [in] */ ISpy *pSpy,
430
            /* [in] */ IUnknown *pOutputPinUnknown,
431
            /* [in] */ IUnknown *pInputPinUnknown,
432
            /* [in] */ const BYTE *pMediaTypeData,
433
            /* [out][in] */ BOOL *pbDefault);
434
        
435
        HRESULT ( STDMETHODCALLTYPE *OnReconnect )( 
436
            IFilterGraphConnectHook * This,
437
            /* [in] */ ISpy *pSpy,
438
            /* [in] */ IUnknown *pPinUnknown,
439
            /* [out][in] */ BOOL *pbDefault);
440
        
441
        HRESULT ( STDMETHODCALLTYPE *OnDisconnect )( 
442
            IFilterGraphConnectHook * This,
443
            /* [in] */ ISpy *pSpy,
444
            /* [in] */ IUnknown *pPinUnknown,
445
            /* [out][in] */ BOOL *pbDefault);
446
        
447
        HRESULT ( STDMETHODCALLTYPE *OnConnect )( 
448
            IFilterGraphConnectHook * This,
449
            /* [in] */ ISpy *pSpy,
450
            /* [in] */ IUnknown *pOutputPinUnknown,
451
            /* [in] */ IUnknown *pInputPinUnknown,
452
            /* [out][in] */ BOOL *pbDefault);
453
        
454
        HRESULT ( STDMETHODCALLTYPE *OnReconnectEx )( 
455
            IFilterGraphConnectHook * This,
456
            /* [in] */ ISpy *pSpy,
457
            /* [in] */ IUnknown *pPinUnknown,
458
            /* [in] */ const BYTE *pMediaTypeData,
459
            /* [out][in] */ BOOL *pbDefault);
460
        
461
        END_INTERFACE
462
    } IFilterGraphConnectHookVtbl;
463
464
    interface IFilterGraphConnectHook
465
    {
466
        CONST_VTBL struct IFilterGraphConnectHookVtbl *lpVtbl;
467
    };
468
469
    
470
471
#ifdef COBJMACROS
472
473
474
#define IFilterGraphConnectHook_QueryInterface(This,riid,ppvObject)	\
475
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
476
477
#define IFilterGraphConnectHook_AddRef(This)	\
478
    ( (This)->lpVtbl -> AddRef(This) ) 
479
480
#define IFilterGraphConnectHook_Release(This)	\
481
    ( (This)->lpVtbl -> Release(This) ) 
482
483
484
#define IFilterGraphConnectHook_OnConnectDirect(This,pSpy,pOutputPinUnknown,pInputPinUnknown,pMediaTypeData,pbDefault)	\
485
    ( (This)->lpVtbl -> OnConnectDirect(This,pSpy,pOutputPinUnknown,pInputPinUnknown,pMediaTypeData,pbDefault) ) 
486
487
#define IFilterGraphConnectHook_OnReconnect(This,pSpy,pPinUnknown,pbDefault)	\
488
    ( (This)->lpVtbl -> OnReconnect(This,pSpy,pPinUnknown,pbDefault) ) 
489
490
#define IFilterGraphConnectHook_OnDisconnect(This,pSpy,pPinUnknown,pbDefault)	\
491
    ( (This)->lpVtbl -> OnDisconnect(This,pSpy,pPinUnknown,pbDefault) ) 
492
493
#define IFilterGraphConnectHook_OnConnect(This,pSpy,pOutputPinUnknown,pInputPinUnknown,pbDefault)	\
494
    ( (This)->lpVtbl -> OnConnect(This,pSpy,pOutputPinUnknown,pInputPinUnknown,pbDefault) ) 
495
496
#define IFilterGraphConnectHook_OnReconnectEx(This,pSpy,pPinUnknown,pMediaTypeData,pbDefault)	\
497
    ( (This)->lpVtbl -> OnReconnectEx(This,pSpy,pPinUnknown,pMediaTypeData,pbDefault) ) 
498
499
#endif /* COBJMACROS */
500
501
502
#endif 	/* C style interface */
503
504
505
506
507
#endif 	/* __IFilterGraphConnectHook_INTERFACE_DEFINED__ */
508
509
510
#ifndef __IFilterGraphStateControlHook_INTERFACE_DEFINED__
511
#define __IFilterGraphStateControlHook_INTERFACE_DEFINED__
512
513
/* interface IFilterGraphStateControlHook */
514
/* [unique][helpstring][nonextensible][uuid][object] */ 
515
516
517
EXTERN_C const IID IID_IFilterGraphStateControlHook;
518
519
#if defined(__cplusplus) && !defined(CINTERFACE)
520
    
521
    MIDL_INTERFACE("65FA1519-A935-4fa9-A15D-9426457E02F6")
522
    IFilterGraphStateControlHook : public IUnknown
523
    {
524
    public:
525
        virtual HRESULT STDMETHODCALLTYPE OnRun( 
526
            /* [in] */ ISpy *pSpy,
527
            /* [out][in] */ BOOL *pbDefault) = 0;
528
        
529
        virtual HRESULT STDMETHODCALLTYPE OnPause( 
530
            /* [in] */ ISpy *pSpy,
531
            /* [out][in] */ BOOL *pbDefault) = 0;
532
        
533
        virtual HRESULT STDMETHODCALLTYPE OnStop( 
534
            /* [in] */ ISpy *pSpy,
535
            /* [out][in] */ BOOL *pbDefault) = 0;
536
        
537
    };
538
    
539
#else 	/* C style interface */
540
541
    typedef struct IFilterGraphStateControlHookVtbl
542
    {
543
        BEGIN_INTERFACE
544
        
545
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
546
            IFilterGraphStateControlHook * This,
547
            /* [in] */ REFIID riid,
548
            /* [iid_is][out] */ 
549
            __RPC__deref_out  void **ppvObject);
550
        
551
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
552
            IFilterGraphStateControlHook * This);
553
        
554
        ULONG ( STDMETHODCALLTYPE *Release )( 
555
            IFilterGraphStateControlHook * This);
556
        
557
        HRESULT ( STDMETHODCALLTYPE *OnRun )( 
558
            IFilterGraphStateControlHook * This,
559
            /* [in] */ ISpy *pSpy,
560
            /* [out][in] */ BOOL *pbDefault);
561
        
562
        HRESULT ( STDMETHODCALLTYPE *OnPause )( 
563
            IFilterGraphStateControlHook * This,
564
            /* [in] */ ISpy *pSpy,
565
            /* [out][in] */ BOOL *pbDefault);
566
        
567
        HRESULT ( STDMETHODCALLTYPE *OnStop )( 
568
            IFilterGraphStateControlHook * This,
569
            /* [in] */ ISpy *pSpy,
570
            /* [out][in] */ BOOL *pbDefault);
571
        
572
        END_INTERFACE
573
    } IFilterGraphStateControlHookVtbl;
574
575
    interface IFilterGraphStateControlHook
576
    {
577
        CONST_VTBL struct IFilterGraphStateControlHookVtbl *lpVtbl;
578
    };
579
580
    
581
582
#ifdef COBJMACROS
583
584
585
#define IFilterGraphStateControlHook_QueryInterface(This,riid,ppvObject)	\
586
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
587
588
#define IFilterGraphStateControlHook_AddRef(This)	\
589
    ( (This)->lpVtbl -> AddRef(This) ) 
590
591
#define IFilterGraphStateControlHook_Release(This)	\
592
    ( (This)->lpVtbl -> Release(This) ) 
593
594
595
#define IFilterGraphStateControlHook_OnRun(This,pSpy,pbDefault)	\
596
    ( (This)->lpVtbl -> OnRun(This,pSpy,pbDefault) ) 
597
598
#define IFilterGraphStateControlHook_OnPause(This,pSpy,pbDefault)	\
599
    ( (This)->lpVtbl -> OnPause(This,pSpy,pbDefault) ) 
600
601
#define IFilterGraphStateControlHook_OnStop(This,pSpy,pbDefault)	\
602
    ( (This)->lpVtbl -> OnStop(This,pSpy,pbDefault) ) 
603
604
#endif /* COBJMACROS */
605
606
607
#endif 	/* C style interface */
608
609
610
611
612
#endif 	/* __IFilterGraphStateControlHook_INTERFACE_DEFINED__ */
613
614
208
EXTERN_C const CLSID CLSID_Spy;
615
EXTERN_C const CLSID CLSID_Spy;
209
616
210
#ifdef __cplusplus
617
#ifdef __cplusplus

Updated trunk/FilterGraphSpy/FilterGraphSpy_p.c Download diff

177178
4
4
5
5
6
 /* File created by MIDL compiler version 7.00.0500 */
6
 /* File created by MIDL compiler version 7.00.0500 */
7
/* at Mon Jun 22 10:09:59 2009
7
/* at Mon Nov 02 10:09:50 2009
8
 */
8
 */
9
/* Compiler settings for .\FilterGraphSpy.idl:
9
/* Compiler settings for .\FilterGraphSpy.idl:
10
    Oicf, W1, Zp8, env=Win32 (32b run)
10
    Oicf, W1, Zp8, env=Win32 (32b run)

Added trunk/FilterGraphSpy/Release Trace/Win32/reg-FilterGraphSpy.dll.bat

Show contents

Added trunk/FilterGraphSpy/Release Trace/Win32/unreg-FilterGraphSpy.dll.bat

Show contents

Added trunk/FilterGraphSpy/Release Trace/x64/reg-FilterGraphSpy.dll.bat

Show contents

Added trunk/FilterGraphSpy/Release Trace/x64/unreg-FilterGraphSpy.dll.bat

Show contents

Updated trunk/FilterGraphSpy/Spy.h Download diff

177178
10
#include "FilterGraphSpy_i.h"
10
#include "FilterGraphSpy_i.h"
11
11
12
////////////////////////////////////////////////////////////
12
////////////////////////////////////////////////////////////
13
// CHookHostT
14
15
template <typename T, typename IHook, LPCTSTR* t_ppszHookName>
16
class CHookHostT
17
{
18
public:
19
20
	////////////////////////////////////////////////////////
21
	// CHookArray
22
23
	class CHookArray :
24
		public CRoArrayT<CComPtr<IHook> >
25
	{
26
	public:
27
	// CHookArray
28
	};
29
30
private:
31
	mutable CRoCriticalSection m_HookCriticalSection;
32
	BOOL m_bHookArrayInitialized;
33
	CHookArray m_HookArray;
34
35
	VOID InitializeHookArray()
36
	{
37
		_A(m_HookArray.IsEmpty());
38
		CRoListT<CLSID> ClassIdentifierList;
39
		static const HKEY g_phParentKeys[] = { HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER };
40
		static const LPCTSTR g_ppszKeyNameFormats[] = { _T("SOFTWARE\\Classes\\"), _T("Software\\Classes\\") };
41
		for(SIZE_T nKeyIndex = 0; nKeyIndex < DIM(g_phParentKeys); nKeyIndex++)
42
		{
43
			const CString sKeyName = AtlFormatString(_T("%sCLSID\\%ls\\Hooks\\%s"), g_ppszKeyNameFormats[nKeyIndex],
_PersistHelper::StringFromIdentifier(T::GetObjectCLSID()), *t_ppszHookName);
44
			CRegKey Key;
45
			if(FAILED(HRESULT_FROM_WIN32(Key.Open(g_phParentKeys[nKeyIndex], sKeyName, KEY_READ))))
46
				continue;
47
			for(DWORD nIndex = 0; ; nIndex++)
48
			{
49
				DWORD nNameLength = 0;
50
				RegEnumKeyEx(Key, nIndex, NULL, &nNameLength, NULL, NULL, NULL, NULL);
51
				nNameLength = max(2 * nNameLength, 256);
52
				CTempBuffer<TCHAR, 4096> pszName(nNameLength);
53
				const HRESULT nRegEnumKeyResult = HRESULT_FROM_WIN32(RegEnumKeyEx(Key, nIndex, pszName, &nNameLength, NULL, NULL, NULL, NULL));
54
				if(FAILED(nRegEnumKeyResult))
55
				{
56
					__D(nRegEnumKeyResult == HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS), nRegEnumKeyResult);
57
					break;
58
				}
59
				_ATLTRY
60
				{
61
					const CLSID ClassIdentifier = _PersistHelper::ClassIdentifierFromString(CT2CW(pszName));
62
					_Z4(atlTraceGeneral, 4, _T("ClassIdentifier %ls\n"), _PersistHelper::StringFromIdentifier(ClassIdentifier));
63
					__D(ClassIdentifier != CLSID_NULL, E_UNNAMED);
64
					if(ClassIdentifierList.Find(ClassIdentifier))
65
						continue;
66
					_W(ClassIdentifierList.AddTail(ClassIdentifier));
67
					CComPtr<IHook> pHook;
68
					__C(pHook.CoCreateInstance(ClassIdentifier));
69
					_W(m_HookArray.Add(pHook) >= 0);
70
				}
71
				_ATLCATCHALL()
72
				{
73
					_Z_EXCEPTION();
74
				}
75
			}
76
		}
77
	}
78
79
public:
80
// CHookHostT
81
	CHookHostT() throw() :
82
		m_bHookArrayInitialized(FALSE)
83
	{
84
	}
85
	SIZE_T GetHookArray(CHookArray& HookArray)
86
	{
87
		_A(HookArray.IsEmpty());
88
		CRoCriticalSectionLock HookLock(m_HookCriticalSection);
89
		if(!m_bHookArrayInitialized)
90
			_ATLTRY
91
			{
92
				m_bHookArrayInitialized = TRUE;
93
				InitializeHookArray();
94
			}
95
			_ATLCATCHALL()
96
			{
97
				_Z_EXCEPTION();
98
			}
99
		HookArray.Append(m_HookArray);
100
		return HookArray.GetCount();
101
	}
102
};
103
104
#define HOOK_PROLOG(Base) \
105
	_ATLTRY \
106
	{ \
107
		Base::CHookArray HookArray; \
108
		if(Base::GetHookArray(HookArray)) \
109
		{ \
110
			T* pT = static_cast<T*>(this); \
111
			for(SIZE_T nIndex = 0; nIndex < HookArray.GetCount(); nIndex++) \
112
			{ \
113
				BOOL bDefault = TRUE; \
114
				const HRESULT nResult = HookArray[nIndex]->
115
						
116
#define HOOK_EPILOG() \
117
				if(!bDefault) \
118
					return nResult; \
119
				_A(SUCCEEDED(nResult)); \
120
			} \
121
		} \
122
	} \
123
	_ATLCATCHALL() \
124
	{ \
125
		_Z_EXCEPTION(); \
126
	}
127
128
////////////////////////////////////////////////////////////
13
// CSpyT
129
// CSpyT
14
130
131
LPCTSTR g_pszAddRemoveHookName = _T("Add/Remove Hooks");
132
LPCTSTR g_pszConnectHookName = _T("Connect Hooks");
133
LPCTSTR g_pszStateControlHookName = _T("State Control Hooks");
134
15
template <typename T, const CLSID* t_pFilterGraphClassIdentifier>
135
template <typename T, const CLSID* t_pFilterGraphClassIdentifier>
16
class ATL_NO_VTABLE CSpyT :
136
class ATL_NO_VTABLE CSpyT :
17
	public CComObjectRootEx<CComMultiThreadModel>,
137
	public CComObjectRootEx<CComMultiThreadModel>,
18
	//public CComCoClass<CSpyT, &CLSID_Spy>,
138
	//public CComCoClass<CSpyT, &CLSID_Spy>,
19
	public IDispatchImpl<ISpy>,
139
	public IDispatchImpl<ISpy>,
20
	public IFilterGraph2,
140
	public IFilterGraph2,
21
	public IDispatchImpl<IMediaControl, &__uuidof(IMediaControl), &__uuidof(Quartz::__QuartzTypeLib)>
141
	public IDispatchImpl<IMediaControl, &__uuidof(IMediaControl), &__uuidof(Quartz::__QuartzTypeLib)>,
142
	public CHookHostT<T, IFilterGraphAddRemoveHook, &g_pszAddRemoveHookName>,
143
	public CHookHostT<T, IFilterGraphConnectHook, &g_pszConnectHookName>,
144
	public CHookHostT<T, IFilterGraphStateControlHook, &g_pszStateControlHookName>
22
{
145
{
23
	typedef CSpyT<T, t_pFilterGraphClassIdentifier> CSpy;
146
	typedef CSpyT<T, t_pFilterGraphClassIdentifier> CSpy;
147
	typedef CHookHostT<T, IFilterGraphAddRemoveHook, &g_pszAddRemoveHookName> CFilterGraphAddRemoveHookHost;
148
	typedef CHookHostT<T, IFilterGraphConnectHook, &g_pszConnectHookName> CFilterGraphConnectHookHost;
149
	typedef CHookHostT<T, IFilterGraphStateControlHook, &g_pszStateControlHookName> CFilterGraphStateControlHookHost;
24
150
25
public:
151
public:
26
	//enum { IDR = IDR_SPY };
152
	//enum { IDR = IDR_SPY };
...
...
31
157
32
DECLARE_GET_CONTROLLING_UNKNOWN()
158
DECLARE_GET_CONTROLLING_UNKNOWN()
33
159
34
DECLARE_QI_TRACE(CSpy)
160
//DECLARE_QI_TRACE(CSpy)
35
161
36
BEGIN_COM_MAP(CSpy)
162
BEGIN_COM_MAP(CSpy)
37
	COM_INTERFACE_ENTRY(ISpy)
163
	COM_INTERFACE_ENTRY(ISpy)
38
	//COM_INTERFACE_ENTRY(IFilterGraph3)
164
	COM_INTERFACE_ENTRY_FUNC(__uuidof(IFilterGraph3), 0, QueryFilterGraph3Interface)
39
	COM_INTERFACE_ENTRY(IFilterGraph2)
165
	COM_INTERFACE_ENTRY(IFilterGraph2)
40
	COM_INTERFACE_ENTRY(IGraphBuilder)
166
	COM_INTERFACE_ENTRY(IGraphBuilder)
41
	COM_INTERFACE_ENTRY(IFilterGraph)
167
	COM_INTERFACE_ENTRY(IFilterGraph)
...
...
168
	BOOL m_bIsAggregated;
294
	BOOL m_bIsAggregated;
169
	CComPtr<IUnknown> m_pInnerUnknown;
295
	CComPtr<IUnknown> m_pInnerUnknown;
170
	CComPtr<IFilterGraph2> m_pInnerFilterGraph2;
296
	CComPtr<IFilterGraph2> m_pInnerFilterGraph2;
297
	CComPtr<IFilterGraph3> m_pInnerFilterGraph3;
171
	CComPtr<IMediaControl> m_pInnerMediaControl;
298
	CComPtr<IMediaControl> m_pInnerMediaControl;
172
	_FilterGraphHelper::CRotRunningFilterGraph m_RunningFilterGraph;
299
	_FilterGraphHelper::CRotRunningFilterGraph m_RunningFilterGraph;
173
	CComPtr<IUnknown> m_pTemporaryUnknown;
300
	CComPtr<IUnknown> m_pTemporaryUnknown;
...
...
223
		m_RunningFilterGraph.SetFilterGraph(NULL);
350
		m_RunningFilterGraph.SetFilterGraph(NULL);
224
		_Z4(atlTraceRefcount, 4, _T("this 0x%08x, m_dwRef 0x%x\n"), this, m_dwRef);
351
		_Z4(atlTraceRefcount, 4, _T("this 0x%08x, m_dwRef 0x%x\n"), this, m_dwRef);
225
	}
352
	}
353
	HRESULT InternalQueryFilterGraph3Interface(REFIID InterfaceIdentifier, VOID** ppvObject) throw()
354
	{
355
		_A(InterfaceIdentifier == __uuidof(IFilterGraph3));
356
		_A(ppvObject);
357
		if(!m_pInnerFilterGraph3)
358
		{
359
			*ppvObject = NULL;
360
			return E_NOINTERFACE;
361
		}
362
		T* pT = static_cast<T*>(this);
363
		*ppvObject = (IFilterGraph3*) pT;
364
		pT->InternalAddRef();
365
		return S_OK;
366
	}
367
	static HRESULT WINAPI QueryFilterGraph3Interface(VOID* pvThis, REFIID InterfaceIdentifier, VOID** ppvObject, DWORD_PTR) throw()
368
	{
369
		return ((CSpy*) pvThis)->InternalQueryFilterGraph3Interface(InterfaceIdentifier, ppvObject);
370
	}
371
	HRESULT HookMediaControlAddSourceFilter(BSTR sFileName, IBaseFilter** ppBaseFilter, BOOL* pbDefault) throw()
372
	{
373
		_A(pbDefault);
374
		HOOK_PROLOG(CFilterGraphAddRemoveHookHost)
375
			OnAddSourceFilter(pT, sFileName, NULL, reinterpret_cast<IUnknown**>(ppBaseFilter), &bDefault);
376
			*pbDefault = bDefault;
377
		HOOK_EPILOG()
378
		return S_OK;
379
	}
226
380
227
public:
381
public:
228
// CSpyT
382
// CSpyT
...
...
318
					CComQIPtr<IFilterGraph2> pFilterGraph2 = pUnknown;
472
					CComQIPtr<IFilterGraph2> pFilterGraph2 = pUnknown;
319
					__D(pFilterGraph2, E_NOINTERFACE);
473
					__D(pFilterGraph2, E_NOINTERFACE);
320
					pFilterGraph2.p->Release();
474
					pFilterGraph2.p->Release();
475
					CComQIPtr<IFilterGraph3> pFilterGraph3 = pUnknown;
476
					if(pFilterGraph3)
477
						pFilterGraph3.p->Release();
321
					CComQIPtr<IMediaControl> pMediaControl = pUnknown;
478
					CComQIPtr<IMediaControl> pMediaControl = pUnknown;
322
					__D(pMediaControl, E_NOINTERFACE);
479
					__D(pMediaControl, E_NOINTERFACE);
323
					pMediaControl.p->Release();
480
					pMediaControl.p->Release();
...
...
326
					{ const ULONG nAddRefCount = pControllingUnknown.p->AddRef(); const ULONG nReleaseCount = pControllingUnknown.p->Release(); _Z5(atlTraceRefcount, 5,
_T("m_dwRef 0x%x, AddRef %d, Release %d\n"), m_dwRef, nAddRefCount, nReleaseCount); }
483
					{ const ULONG nAddRefCount = pControllingUnknown.p->AddRef(); const ULONG nReleaseCount = pControllingUnknown.p->Release(); _Z5(atlTraceRefcount, 5,
_T("m_dwRef 0x%x, AddRef %d, Release %d\n"), m_dwRef, nAddRefCount, nReleaseCount); }
327
					m_pInnerUnknown = pUnknown;
484
					m_pInnerUnknown = pUnknown;
328
					m_pInnerFilterGraph2 = pFilterGraph2;
485
					m_pInnerFilterGraph2 = pFilterGraph2;
486
					m_pInnerFilterGraph3 = pFilterGraph3;
329
					m_pInnerMediaControl = pMediaControl;
487
					m_pInnerMediaControl = pMediaControl;
330
				}
488
				}
331
				if(m_bIsAggregated)
489
				if(m_bIsAggregated)
...
...
367
			pControllingUnknown.p->AddRef();
525
			pControllingUnknown.p->AddRef();
368
			m_pInnerMediaControl = NULL;
526
			m_pInnerMediaControl = NULL;
369
		}
527
		}
528
		if(m_pInnerFilterGraph3)
529
		{
530
			pControllingUnknown.p->AddRef();
531
			m_pInnerFilterGraph3 = NULL;
532
		}
370
		if(m_pInnerFilterGraph2)
533
		if(m_pInnerFilterGraph2)
371
		{
534
		{
372
			pControllingUnknown.p->AddRef();
535
			pControllingUnknown.p->AddRef();
...
...
387
// ISpy
550
// ISpy
388
551
389
// IFilterGraph
552
// IFilterGraph
390
    STDMETHOD(AddFilter)(IBaseFilter* pFilter, LPCWSTR pszName) throw()
553
	STDMETHOD(AddFilter)(IBaseFilter* pBaseFilter, LPCWSTR pszName) throw()
391
	{
554
	{
392
		_Z4(atlTraceCOM, 4, _T("pszName \"%s\"\n"), CString(pszName));
555
		_Z4(atlTraceCOM, 4, _T("pBaseFilter 0x%08x, pszName \"%s\"\n"), pBaseFilter, CString(pszName));
393
		ReleaseTemporaryUnknown();
556
		ReleaseTemporaryUnknown();
394
		return m_pInnerFilterGraph2->AddFilter(pFilter, pszName);
557
		HOOK_PROLOG(CFilterGraphAddRemoveHookHost)
558
			OnAddFilter(pT, pBaseFilter, pszName, &bDefault);
559
		HOOK_EPILOG()
560
		return m_pInnerFilterGraph2->AddFilter(pBaseFilter, pszName);
395
	}
561
	}
396
    STDMETHOD(RemoveFilter)(IBaseFilter* pFilter) throw()
562
    STDMETHOD(RemoveFilter)(IBaseFilter* pBaseFilter) throw()
397
	{
563
	{
398
		_Z4(atlTraceCOM, 4, _T("...\n"));
564
		_Z4(atlTraceCOM, 4, _T("pBaseFilter 0x%08x\n"), pBaseFilter);
399
		return m_pInnerFilterGraph2->RemoveFilter(pFilter);
565
		if(pBaseFilter)
566
			_ATLTRY
567
			{
568
				const CStringW sName = _FilterGraphHelper::GetFilterName(pBaseFilter);
569
				_Z4(atlTraceGeneral, 4, _T("sName \"%ls\"\n"), sName);
570
			}
571
			_ATLCATCHALL()
572
			{
573
				_Z_EXCEPTION();
574
			}
575
		HOOK_PROLOG(CFilterGraphAddRemoveHookHost)
576
			OnRemoveFilter(pT, pBaseFilter, &bDefault);
577
		HOOK_EPILOG()
578
		return m_pInnerFilterGraph2->RemoveFilter(pBaseFilter);
400
	}
579
	}
401
    STDMETHOD(EnumFilters)(IEnumFilters** ppEnumFilters) throw()
580
    STDMETHOD(EnumFilters)(IEnumFilters** ppEnumFilters) throw()
402
	{
581
	{
...
...
411
    STDMETHOD(ConnectDirect)(IPin* pOutputPin, IPin* pInputPin, const AM_MEDIA_TYPE* pMediaType) throw()
590
    STDMETHOD(ConnectDirect)(IPin* pOutputPin, IPin* pInputPin, const AM_MEDIA_TYPE* pMediaType) throw()
412
	{
591
	{
413
		_Z4(atlTraceCOM, 4, _T("...\n"));
592
		_Z4(atlTraceCOM, 4, _T("...\n"));
593
		if(pOutputPin && pInputPin)
594
			_ATLTRY
595
			{
596
				_Z4(atlTraceGeneral, 4, _T("pOutputPin \"%ls\", pInputPin \"%ls\"\n"), _FilterGraphHelper::GetPinFullName(pOutputPin),
_FilterGraphHelper::GetPinFullName(pInputPin));
597
				if(pMediaType)
598
					_FilterGraphHelper::TraceMediaType(pMediaType);
599
			}
600
			_ATLCATCHALL()
601
			{
602
				_Z_EXCEPTION();
603
			}
604
		HOOK_PROLOG(CFilterGraphConnectHookHost)
605
			OnConnectDirect(pT, pOutputPin, pInputPin, (const BYTE*) pMediaType, &bDefault);
606
		HOOK_EPILOG()
414
		return m_pInnerFilterGraph2->ConnectDirect(pOutputPin, pInputPin, pMediaType);
607
		return m_pInnerFilterGraph2->ConnectDirect(pOutputPin, pInputPin, pMediaType);
415
	}
608
	}
416
    STDMETHOD(Reconnect)(IPin* pPin) throw()
609
    STDMETHOD(Reconnect)(IPin* pPin) throw()
417
	{
610
	{
418
		_Z4(atlTraceCOM, 4, _T("...\n"));
611
		_Z4(atlTraceCOM, 4, _T("...\n"));
612
		HOOK_PROLOG(CFilterGraphConnectHookHost)
613
			OnReconnect(pT, pPin, &bDefault);
614
		HOOK_EPILOG()
419
		return m_pInnerFilterGraph2->Reconnect(pPin);
615
		return m_pInnerFilterGraph2->Reconnect(pPin);
420
	}
616
	}
421
    STDMETHOD(Disconnect)(IPin* pPin) throw()
617
    STDMETHOD(Disconnect)(IPin* pPin) throw()
422
	{
618
	{
423
		_Z4(atlTraceCOM, 4, _T("...\n"));
619
		_Z4(atlTraceCOM, 4, _T("...\n"));
620
		HOOK_PROLOG(CFilterGraphConnectHookHost)
621
			OnDisconnect(pT, pPin, &bDefault);
622
		HOOK_EPILOG()
424
		return m_pInnerFilterGraph2->Disconnect(pPin);
623
		return m_pInnerFilterGraph2->Disconnect(pPin);
425
	}
624
	}
426
    STDMETHOD(SetDefaultSyncSource)() throw()
625
    STDMETHOD(SetDefaultSyncSource)() throw()
...
...
433
    STDMETHOD(Connect)(IPin* pOutputPin, IPin* pInputPin) throw()
632
    STDMETHOD(Connect)(IPin* pOutputPin, IPin* pInputPin) throw()
434
	{
633
	{
435
		_Z4(atlTraceCOM, 4, _T("...\n"));
634
		_Z4(atlTraceCOM, 4, _T("...\n"));
635
		if(pOutputPin && pInputPin)
636
			_ATLTRY
637
			{
638
				_Z4(atlTraceGeneral, 4, _T("pOutputPin \"%ls\", pInputPin \"%ls\"\n"), _FilterGraphHelper::GetPinFullName(pOutputPin),
_FilterGraphHelper::GetPinFullName(pInputPin));
639
			}
640
			_ATLCATCHALL()
641
			{
642
				_Z_EXCEPTION();
643
			}
644
		HOOK_PROLOG(CFilterGraphConnectHookHost)
645
			OnConnect(pT, pOutputPin, pInputPin, &bDefault);
646
		HOOK_EPILOG()
436
		return m_pInnerFilterGraph2->Connect(pOutputPin, pInputPin);
647
		return m_pInnerFilterGraph2->Connect(pOutputPin, pInputPin);
437
	}
648
	}
438
    STDMETHOD(Render)(IPin* pOutputPin) throw()
649
    STDMETHOD(Render)(IPin* pOutputPin) throw()
...
...
445
		_Z4(atlTraceCOM, 4, _T("pszFileName \"%s\", pszPlayListFileName \"%s\"\n"), CString(pszFileName), CString(pszPlayListFileName));
656
		_Z4(atlTraceCOM, 4, _T("pszFileName \"%s\", pszPlayListFileName \"%s\"\n"), CString(pszFileName), CString(pszPlayListFileName));
446
		return m_pInnerFilterGraph2->RenderFile(pszFileName, pszPlayListFileName);
657
		return m_pInnerFilterGraph2->RenderFile(pszFileName, pszPlayListFileName);
447
	}
658
	}
448
    STDMETHOD(AddSourceFilter)(LPCWSTR pszFileName, LPCWSTR pszFilterName, IBaseFilter** ppFilter) throw()
659
    STDMETHOD(AddSourceFilter)(LPCWSTR pszFileName, LPCWSTR pszFilterName, IBaseFilter** ppBaseFilter) throw()
449
	{
660
	{
450
		_Z4(atlTraceCOM, 4, _T("pszFileName \"%s\", pszFilterName \"%s\"\n"), CString(pszFileName), CString(pszFilterName));
661
		_Z4(atlTraceCOM, 4, _T("pszFileName \"%s\", pszFilterName \"%s\"\n"), CString(pszFileName), CString(pszFilterName));
451
		ReleaseTemporaryUnknown();
662
		ReleaseTemporaryUnknown();
452
		return m_pInnerFilterGraph2->AddSourceFilter(pszFileName, pszFilterName, ppFilter);
663
		HOOK_PROLOG(CFilterGraphAddRemoveHookHost)
664
			OnAddSourceFilter(pT, pszFileName, pszFilterName, reinterpret_cast<IUnknown**>(ppBaseFilter), &bDefault);
665
		HOOK_EPILOG()
666
		return m_pInnerFilterGraph2->AddSourceFilter(pszFileName, pszFilterName, ppBaseFilter);
453
	}
667
	}
454
    STDMETHOD(SetLogFile)(DWORD_PTR hFile) throw()
668
	STDMETHOD(SetLogFile)(DWORD_PTR hFile) throw()
455
	{
669
	{
456
		_Z4(atlTraceCOM, 4, _T("...\n"));
670
		_Z4(atlTraceCOM, 4, _T("...\n"));
457
		return m_pInnerFilterGraph2->SetLogFile(hFile);
671
		return m_pInnerFilterGraph2->SetLogFile(hFile);
458
	}
672
	}
459
    STDMETHOD(Abort)() throw()
673
	STDMETHOD(Abort)() throw()
460
	{
674
	{
461
		_Z4(atlTraceCOM, 4, _T("...\n"));
675
		_Z4(atlTraceCOM, 4, _T("...\n"));
462
		return m_pInnerFilterGraph2->Abort();
676
		return m_pInnerFilterGraph2->Abort();
463
	}
677
	}
464
    STDMETHOD(ShouldOperationContinue)() throw()
678
	STDMETHOD(ShouldOperationContinue)() throw()
465
	{
679
	{
466
		_Z4(atlTraceCOM, 4, _T("...\n"));
680
		_Z4(atlTraceCOM, 4, _T("...\n"));
467
		return m_pInnerFilterGraph2->ShouldOperationContinue();
681
		return m_pInnerFilterGraph2->ShouldOperationContinue();
468
	}
682
	}
469
683
470
// IFilterGraph2
684
// IFilterGraph2
471
    STDMETHOD(AddSourceFilterForMoniker)(IMoniker* pMoniker, IBindCtx* pBindCtx, LPCWSTR pszFilterName, IBaseFilter** ppFilter) throw()
685
	STDMETHOD(AddSourceFilterForMoniker)(IMoniker* pMoniker, IBindCtx* pBindCtx, LPCWSTR pszFilterName, IBaseFilter** ppBaseFilter) throw()
472
	{
686
	{
473
		_Z4(atlTraceCOM, 4, _T("pszFilterName \"%s\"\n"), CString(pszFilterName));
687
		_Z4(atlTraceCOM, 4, _T("pszFilterName \"%s\"\n"), CString(pszFilterName));
474
		ReleaseTemporaryUnknown();
688
		ReleaseTemporaryUnknown();
475
		return m_pInnerFilterGraph2->AddSourceFilterForMoniker(pMoniker, pBindCtx, pszFilterName, ppFilter);
689
		HOOK_PROLOG(CFilterGraphAddRemoveHookHost)
690
			OnAddSourceFilterForMoniker(pT, pMoniker, pBindCtx, pszFilterName, reinterpret_cast<IUnknown**>(ppBaseFilter), &bDefault);
691
		HOOK_EPILOG()
692
		return m_pInnerFilterGraph2->AddSourceFilterForMoniker(pMoniker, pBindCtx, pszFilterName, ppBaseFilter);
476
	}
693
	}
477
    STDMETHOD(ReconnectEx)(IPin* pPin, const AM_MEDIA_TYPE* pMediaType) throw()
694
	STDMETHOD(ReconnectEx)(IPin* pPin, const AM_MEDIA_TYPE* pMediaType) throw()
478
	{
695
	{
479
		_Z4(atlTraceCOM, 4, _T("...\n"));
696
		_Z4(atlTraceCOM, 4, _T("...\n"));
697
		HOOK_PROLOG(CFilterGraphConnectHookHost)
698
			OnReconnectEx(pT, pPin, (const BYTE*) pMediaType, &bDefault);
699
		HOOK_EPILOG()
480
		return m_pInnerFilterGraph2->ReconnectEx(pPin, pMediaType);
700
		return m_pInnerFilterGraph2->ReconnectEx(pPin, pMediaType);
481
	}
701
	}
482
    STDMETHOD(RenderEx)(IPin* pOutputPin, DWORD nFlags, DWORD* pnContext) throw()
702
	STDMETHOD(RenderEx)(IPin* pOutputPin, DWORD nFlags, DWORD* pnContext) throw()
483
	{
703
	{
484
		_Z4(atlTraceCOM, 4, _T("nFlags 0x%x\n"), nFlags);
704
		_Z4(atlTraceCOM, 4, _T("nFlags 0x%x\n"), nFlags);
485
		return m_pInnerFilterGraph2->RenderEx(pOutputPin, nFlags, pnContext);
705
		return m_pInnerFilterGraph2->RenderEx(pOutputPin, nFlags, pnContext);
486
	}
706
	}
487
707
488
//// IFilterGraph3
708
// IFilterGraph3
489
//    STDMETHOD(SetSyncSourceEx)(IReferenceClock* pFilterGraphClock, IReferenceClock* pFilterClock, IBaseFilter* pFilter) throw()
709
    STDMETHOD(SetSyncSourceEx)(IReferenceClock* pFilterGraphReferenceClock, IReferenceClock* pFilterReferenceClock, IBaseFilter* pBaseFilter) throw()
490
//	{
710
	{
491
//		_Z4(atlTraceCOM, 4, _T("...\n"));
711
		_Z4(atlTraceCOM, 4, _T("...\n"));
492
//		return m_pInnerFilterGraph3->SetSyncSourceEx(pFilterGraphClock, pFilterClock, pFilter);
712
		_A(m_pInnerFilterGraph3);
493
//	}
713
		return m_pInnerFilterGraph3->SetSyncSourceEx(pFilterGraphReferenceClock, pFilterReferenceClock, pBaseFilter);
714
	}
494
715
495
// IMediaControl
716
// IMediaControl
496
    STDMETHOD(Run)() throw()
717
	STDMETHOD(Run)() throw()
497
	{
718
	{
498
		_Z4(atlTraceCOM, 4, _T("...\n"));
719
		_Z4(atlTraceCOM, 4, _T("...\n"));
499
#if TRUE
500
		const HRESULT nResult = m_pInnerMediaControl->Run();
501
		_ATLTRY
720
		_ATLTRY
502
		{
721
		{
503
			_Z4(atlTraceCOM, 4, _T("nResult 0x%08x\n"), nResult);
504
			_FilterGraphHelper::TraceGraphBuilder(this);
722
			_FilterGraphHelper::TraceGraphBuilder(this);
505
		}
723
		}
506
		_ATLCATCHALL()
724
		_ATLCATCHALL()
507
		{
725
		{
508
			_Z_EXCEPTION();
726
			_Z_EXCEPTION();
509
		}
727
		}
510
		return nResult;
728
		HOOK_PROLOG(CFilterGraphStateControlHookHost)
511
#else
729
			OnRun(pT, &bDefault);
512
		return m_pInnerMediaControl->Run();
730
		HOOK_EPILOG()
513
#endif
731
		const HRESULT nRunResult = m_pInnerMediaControl->Run();
732
		_Z4(atlTraceGeneral, 4, _T("nRunResult 0x%08x\n"), nRunResult);
733
		return nRunResult;
514
	}
734
	}
515
    STDMETHOD(Pause)() throw()
735
	STDMETHOD(Pause)() throw()
516
	{
736
	{
517
		_Z4(atlTraceCOM, 4, _T("...\n"));
737
		_Z4(atlTraceCOM, 4, _T("...\n"));
738
		HOOK_PROLOG(CFilterGraphStateControlHookHost)
739
			OnPause(pT, &bDefault);
740
		HOOK_EPILOG()
518
		return m_pInnerMediaControl->Pause();
741
		return m_pInnerMediaControl->Pause();
519
	}
742
	}
520
    STDMETHOD(Stop)() throw()
743
	STDMETHOD(Stop)() throw()
521
	{
744
	{
522
		_Z4(atlTraceCOM, 4, _T("...\n"));
745
		_Z4(atlTraceCOM, 4, _T("...\n"));
746
		HOOK_PROLOG(CFilterGraphStateControlHookHost)
747
			OnStop(pT, &bDefault);
748
		HOOK_EPILOG()
523
		return m_pInnerMediaControl->Stop();
749
		return m_pInnerMediaControl->Stop();
524
	}
750
	}
525
    STDMETHOD(GetState)(LONG nTimeout, OAFilterState* pState) throw()
751
	STDMETHOD(GetState)(LONG nTimeout, OAFilterState* pState) throw()
526
	{
752
	{
527
		_Z4(atlTraceCOM, 4, _T("nTimeout %d\n"), nTimeout);
753
		_Z4(atlTraceCOM, 4, _T("nTimeout %d\n"), nTimeout);
528
		return m_pInnerMediaControl->GetState(nTimeout, pState);
754
		return m_pInnerMediaControl->GetState(nTimeout, pState);
529
	}
755
	}
530
    STDMETHOD(RenderFile)(BSTR sFilename) throw()
756
	STDMETHOD(RenderFile)(BSTR sFileName) throw()
531
	{
757
	{
532
		_Z4(atlTraceCOM, 4, _T("sFilename \"%s\"\n"), CString(sFilename));
758
		_Z4(atlTraceCOM, 4, _T("sFileName \"%s\"\n"), CString(sFileName));
533
		return m_pInnerMediaControl->RenderFile(sFilename);
759
		return m_pInnerMediaControl->RenderFile(sFileName);
534
	}
760
	}
535
    STDMETHOD(AddSourceFilter)(BSTR sFilename, IDispatch** ppDispatch) throw()
761
    STDMETHOD(AddSourceFilter)(BSTR sFileName, IDispatch** ppDispatch) throw()
536
	{
762
	{
537
		_Z4(atlTraceCOM, 4, _T("sFilename \"%s\"\n"), CString(sFilename));
763
		_Z4(atlTraceCOM, 4, _T("sFileName \"%s\"\n"), CString(sFileName));
538
		return m_pInnerMediaControl->AddSourceFilter(sFilename, ppDispatch);
764
		ReleaseTemporaryUnknown();
765
		_ATLTRY
766
		{
767
			CComPtr<IBaseFilter> pBaseFilter;
768
			BOOL bDefault = TRUE;
769
			const HRESULT nResult = HookMediaControlAddSourceFilter(sFileName, &pBaseFilter, &bDefault);
770
			if(!bDefault)
771
			{
772
				__D(ppDispatch, E_POINTER);
773
				*ppDispatch = NULL;
774
				if(SUCCEEDED(nResult))
775
				{
776
					CComQIPtr<IDispatch> pDispatch = pBaseFilter;
777
					__D(pDispatch, E_NOINTERFACE);
778
					*ppDispatch = pDispatch.Detach();
779
				}
780
				return nResult;
781
			}
782
		}
783
		_ATLCATCH(Exception)
784
		{
785
			_C(Exception);
786
		}
787
		return m_pInnerMediaControl->AddSourceFilter(sFileName, ppDispatch);
539
	}
788
	}
540
    STDMETHOD(get_FilterCollection)(IDispatch** ppDispatch) throw()
789
	STDMETHOD(get_FilterCollection)(IDispatch** ppDispatch) throw()
541
	{
790
	{
542
		_Z4(atlTraceCOM, 4, _T("...\n"));
791
		_Z4(atlTraceCOM, 4, _T("...\n"));
543
		ReleaseTemporaryUnknown();
792
		ReleaseTemporaryUnknown();
544
		return m_pInnerMediaControl->get_FilterCollection(ppDispatch);
793
		return m_pInnerMediaControl->get_FilterCollection(ppDispatch);
545
	}
794
	}
546
    STDMETHOD(get_RegFilterCollection)(IDispatch** ppDispatch) throw()
795
	STDMETHOD(get_RegFilterCollection)(IDispatch** ppDispatch) throw()
547
	{
796
	{
548
		_Z4(atlTraceCOM, 4, _T("...\n"));
797
		_Z4(atlTraceCOM, 4, _T("...\n"));
549
		ReleaseTemporaryUnknown();
798
		ReleaseTemporaryUnknown();
550
		return m_pInnerMediaControl->get_RegFilterCollection(ppDispatch);
799
		return m_pInnerMediaControl->get_RegFilterCollection(ppDispatch);
551
	}
800
	}
552
    STDMETHOD(StopWhenReady)() throw()
801
	STDMETHOD(StopWhenReady)() throw()
553
	{
802
	{
554
		_Z4(atlTraceCOM, 4, _T("...\n"));
803
		_Z4(atlTraceCOM, 4, _T("...\n"));
555
		return m_pInnerMediaControl->StopWhenReady();
804
		return m_pInnerMediaControl->StopWhenReady();

Updated trunk/FilterGraphSpy/stdafx.h Download diff

177178
43
////////////////////////////////////////////////////////////
43
////////////////////////////////////////////////////////////
44
// WTL
44
// WTL
45
45
46
#define _SECURE_ATL	TRUE
46
#define _WTL_NO_CSTRING
47
#define _WTL_NO_CSTRING
47
#define _WTL_NO_WTYPES
48
#define _WTL_NO_WTYPES
48
#define _WTL_NO_UNION_CLASSES
49
#define _WTL_NO_UNION_CLASSES
...
...
70
71
71
#include "roatlbase.h"
72
#include "roatlbase.h"
72
#include "roatlvariants.h"
73
#include "roatlvariants.h"
74
#include "roatlcollections.h"
73
#include "roatlcom.h"
75
#include "roatlcom.h"
74
#include "roatlpersist.h"
76
#include "roatlpersist.h"
75
#include "roatlmisc.h"
77
#include "roatlmisc.h"