Whole Tomato Software Forums
Whole Tomato Software Forums
Main Site | Profile | Register | Active Topics | Members | Search | FAQ
User name:
Password:
Save Password
Forgot your password?

 All Forums
 Visual Assist
 Technical Support
 Listing CLSID's
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

yyalda
New Member

Australia
8 Posts

Posted - Sep 26 2006 :  08:44:58 AM  Show Profile  Reply with Quote
I am having issues listing all CLSID's in uuids.h.

For example CLSID_FilterGraph comes up as white, but I dont get a short list of CLSID_XXX listings. I have to type the whole thing, Is there something I can do? Should it be white?

Cheers
Yan

feline
Whole Tomato Software

United Kingdom
19024 Posts

Posted - Oct 03 2006 :  07:26:20 AM  Show Profile  Reply with Quote
using VS2003, C++ and VA 1535 i have added:

#include <uuids.h>

and when i type CLISID_ and then press CTRL-SPACE to get a completion listbox they are grey for me, which is i suspect what you are seeing. for me, as i type more letters, the completion listbox gets shorter. do you have:

VA Options -> Text Editor -> listboxes -> shrink when possible

turned on? if this is turned off then the completion listbox should not get shorter.

using alt-g on "CLSID_CCDGroupBox" i get the line:

extern const CLSID CLSID_CCDGroupBox;

so "CLSID_CCDGroupBox" is grey because it is a standard variable. if it was part of an enum, or a #define then it would pick up the colour from:

VA Options -> Environment -> Fonts and Colors -> Preprocessor maros

which is purple by default.

zen is the art of being at one with the two'ness
Go to Top of Page

yyalda
New Member

Australia
8 Posts

Posted - Oct 03 2006 :  08:46:25 AM  Show Profile  Reply with Quote
Thanks for getting back to me feline.

First off

VA_X.dll file version 10.3.1535.0 built 2006.09.15
Licensed to:
VA X: [email protected] (1-user license) Support ends 2007.xxx
VAOpsWin.dll version 1.3.3.6
VATE.dll version 1.0.5.8
DevEnv.exe version 8.0.50727.42
msenv.dll version 8.0.50727.42
Font: ProFontWindows 13(Pixels)
Comctl32.dll version 6.0.2900.2180
Windows XP 5.1 Build 2600 Service Pack 2
Single processor

Platform: Win32
Stable Includes:
F:\\Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Samples\\Multimedia\\DirectShow\\Common;
F:\\Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Samples\\Multimedia\\DirectShow\\BaseClasses;
F:\\Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\include;
F:\\Program Files\\Microsoft DirectX SDK (August 2006)\\Include;
F:\\Program Files\\Microsoft Visual Studio 8\\VC\\include;
F:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\include;
F:\\Program Files\\Microsoft Visual Studio 8\\VC\\PlatformSDK\\include;
F:\\Program Files\\Microsoft Visual Studio 8\\SDK\\v2.0\\include;

Library Includes:
F:\\Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Samples\\Multimedia\\DirectShow\\Common;
F:\\Program Files\\Microsoft Platform SDK for Windows Server 2003 R2\\Samples\\Multimedia\\DirectShow\\BaseClasses;
F:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\src\\mfc;
F:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\src\\mfcm;
F:\\Program Files\\Microsoft Visual Studio 8\\VC\\atlmfc\\src\\atl;
F:\\Program Files\\Microsoft Visual Studio 8\\VC\\crt\\src;

Other Includes:

As you can see I am using Visual Studio 2005 with latest Visual Assist. I just created a MFC test project and added

#include <dshow.h>
#include <strmif.h>
#include <streams.h>

#define INITGUID
#include <initguid.h>
#include <uuids.h>


into stdafx.h

I created a BaseFilter in the main class and tried to create instances of filters I need. Its still not coming up. I opened uuids.h and the CLSID's are still white, this indicates to me they wont come up on the completion listbox. I tried reparse current file and it didnt do anything.

CComPtr<IGraphBuilder> testBuilder;
CComPtr<IBaseFilter> testBase;
testBase.CoCreateInstance(CLSID_MPEG1Video 


Also "shrink when possible" option is off.
Also closed and reopened project still no good.

Cheers.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19024 Posts

Posted - Oct 03 2006 :  1:32:54 PM  Show Profile  Reply with Quote
i do not have any DirectX SDK's installed on my test system, so this may explain some of the differences. but it does not explain all of them.

if you sit on the line:

#include <uuids.h>

and go alt-g on the file name "uuids.h" where do you end up? i am being taken to the file "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\PlatformSDK\\include\\uuids.h"

inside this file, doing a find for "CLSID" the first two entries i am finding are:



i have changed the global background colour on my system, but the other visible colours are the defaults. by default the background colour is white, so do you have a custom colour scheme? white text will not show on a white background.

i have added the code you posted to a basic MFC application, and when i type the CLSID i get the following completion listbox:



here i have set functions to show in orange, to make them stand out a bit more. note that i have the following options turned on:

VA Options -> Text Editor -> listboxes -> allow acronyms
VA Options -> Text Editor -> listboxes -> allow shorthand
VA Options -> Text Editor -> listboxes -> shrink when possible

which explains why i am getting these matches, and why the list is getting smaller.

how close is this to what you are seeing?

zen is the art of being at one with the two'ness
Go to Top of Page

yyalda
New Member

Australia
8 Posts

Posted - Oct 03 2006 :  7:52:23 PM  Show Profile  Reply with Quote
This is what my screen looks like



Now I enabled the Shrink When Possible and I seem to get the CLSID's



When I Alt-G it doesnt go to uuid.h.

I noticed that your CLSID is declared in cguid.h and its declared differently to the DirectShow CLSID's. When I type CLSID_CCDGroupBox and Alt-g this it takes me to the header file.

I use default syntax colouring.


Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19024 Posts

Posted - Oct 05 2006 :  08:15:10 AM  Show Profile  Reply with Quote
the CLSID_ items are shown in purple in the completion listbox, but not in your code. I recall seeing this once before, but that was in some C# code.

Do you know if it is possible to get the correct headers without having to download the entire DirectX SDK? At 500meg it seems a little large just to see the definition of CLSID_FilterGraph

for me, alt-g on "CLSID_FolderViewHost" takes me to the file "C:\\Program Files\\Microsoft Visual Studio 8\\VC\\PlatformSDK\\include\\shobjidl.h" and the line:

EXTERN_C const CLSID CLSID_FolderViewHost;


given this it is sensible that CLSID_FolderViewHost is shown as a variable, since that is exactly what it is. if you use alt-g on CLSID_FilterGraph how is it defined?

if you go to:

IDE tools menu -> Options -> Environment -> Fonts and Colors

what colour is set for "Identifiers"? I suspect it is white, which suggests that the IDE is colouring CLSID_FilterGraph in your code, not VA.

zen is the art of being at one with the two'ness

Edited by - feline on Oct 05 2006 08:15:59 AM
Go to Top of Page

yyalda
New Member

Australia
8 Posts

Posted - Oct 05 2006 :  08:45:56 AM  Show Profile  Reply with Quote
you dont need DirectX SDK anymore for directshow. Its in the PSDK now :( I have no idea why. I removed that from my includes.

Microsoft Platform SDK for Windows Server 2003 R2\\Include\\uuid.h

alt-g on CLSID_FilterGraph doesnt do anything.

Yes Identifier is set to white.
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19024 Posts

Posted - Oct 05 2006 :  11:22:27 AM  Show Profile  Reply with Quote
do you mean "Platform SDK for Windows Server 2003 R2 - March 2006 Edition (English)" ?

410 meg *sigh*

if you sit on the #include <uuid.h> line, and place the caret in "uuid.h" what does the VA Wizard bar show? the definition field (the right hand side) should show the full path to this include file.

i am wondering if VA is having problems finding the correct uuid.h file, which would explain quite a bit of this.

in VA Options -> Projects -> C/C++ Directories what is the "platform" pull down set to? is the directory that contains the correct uuid.h in the list of directories?

is the directory listed in your projects C++ additional include directories?
i am also wondering how the IDE knows how to find this file.

zen is the art of being at one with the two'ness
Go to Top of Page

yyalda
New Member

Australia
8 Posts

Posted - Oct 05 2006 :  9:20:16 PM  Show Profile  Reply with Quote
When I place my cusor on the uuid.h file the wizard shows the correct location.

I had a look at the uuid.h header file. The screenshot below is from the top of the header file.



As you can see the MEDIASUBTYPE_None has been parsed by VA. All the CLSID's below that have not, including CLSID_FilterGraph.

This has to be a bug with VA.

Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19024 Posts

Posted - Oct 07 2006 :  12:58:19 PM  Show Profile  Reply with Quote
if you use alt-g on MEDIATYPE_Video what happens? if these are defined like:

EXTERN_C const CLSID CLSID_FolderViewHost;


then the colouring is correct, since they are not pre-processor directives or enums, they are simply "exposed" variables.

I agree, this does look wrong, but it may simply be a question of how the code was originally written.

zen is the art of being at one with the two'ness
Go to Top of Page

yyalda
New Member

Australia
8 Posts

Posted - Oct 07 2006 :  8:19:36 PM  Show Profile  Reply with Quote
alt-g on MEDIATYPE_Video does nothing.

I just tried the same test using Visual Studio 6, I get the same problem.


What I dont understand is why the pre-processor evaluates MEDIASUBTYPE_None, then anything after that it doesnt.


Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19024 Posts

Posted - Oct 09 2006 :  10:03:44 AM  Show Profile  Reply with Quote
I have downloaded and installed "Platform SDK for Windows Server 2003 R2 - March 2006 Edition (English)"

I am seeing the same thing, alt-g on "MEDIATYPE_Video" in uuids.h simply beeps and takes me no where. However I get basically the same result by right clicking and selecting "Go to Definition" or "Go to Declaration". The IDE cannot find where this symbol is defined either.

Using agent ransack I have done a find in files across every single file in the "C:\\Program Files\\Microsoft Visual Studio .NET 2003\\" tree, and I cannot find any code files where "MEDIATYPE_Video" is being defined.

So VA can never use the "correct" colouring for "MEDIATYPE_Video" since this is never defined. I suspect it is explored from one of the object files, and the original source is not part of this SDK, or it is not installed when doing a standard install.

zen is the art of being at one with the two'ness
Go to Top of Page

yyalda
New Member

Australia
8 Posts

Posted - Oct 09 2006 :  8:42:42 PM  Show Profile  Reply with Quote
MEDIATYPE_Video is declared in uuids.h. "Go to Definition" or "Go to Declaration" take me to uuids.h when I right click on MEDIATYPE_Video in my own source.

#ifndef OUR_GUID_ENTRY
    #define OUR_GUID_ENTRY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \    DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8);
#endif

OUR_GUID_ENTRY(MEDIATYPE_Video,
0x73646976, 0x0000, 0x0010, 0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71)



it uses DEFINE_GUID macro which is declared in guiddef.h


#ifdef INITGUID
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \        EXTERN_C const GUID DECLSPEC_SELECTANY name \                = { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }
#else
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8) \    EXTERN_C const GUID FAR name
#endif // INITGUID


I notice alot of other Interfaces are declared using DEFINE_GUID, I tried a few and they work okay with VA.


Update:
I also noticed that uuids.h exists in base PSDK that comes with VS2005.

Program Files\\Microsoft Visual Studio 8\\VC\\PlatformSDK\\Include\\uuids.h

You dont need to to install the new Platform SDK to see this issue.

Edited by - yyalda on Oct 09 2006 9:46:30 PM
Go to Top of Page

feline
Whole Tomato Software

United Kingdom
19024 Posts

Posted - Oct 10 2006 :  1:12:02 PM  Show Profile  Reply with Quote
*oops* my mistake, I missed that. I was still thinking in terms of how CLSID_FolderViewHost was defined.

the colouring of MEDIATYPE_Video still seems correct to me, since it looks to be defined as either:

EXTERN_C const GUID DECLSPEC_SELECTANY MEDIATYPE_Video

or

EXTERN_C const GUID FAR MEDIATYPE_Video

both of which look like variable declarations, not #define declarations.


using VS2005 and looking in the file "Program Files\\Microsoft Visual Studio 8\\VC\\PlatformSDK\\Include\\uuids.h"
"MEDIASUBTYPE_None" is shown in bold, and will be suggested and understood by VA.
however "MEDIATYPE_Video" is not bold, and VA is reluctant to suggest this.

for me turning on:
VA Options -> Text Editor -> listboxes -> get content from default intellisense

improves things quite a lot.

case=2939

zen is the art of being at one with the two'ness
Go to Top of Page

support
Whole Tomato Software

5566 Posts

Posted - Apr 24 2008 :  12:45:14 AM  Show Profile  Reply with Quote
case=2939 is fixed in build 1635
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
© 2023 Whole Tomato Software, LLC Go To Top Of Page
Snitz Forums 2000