T O P I C R E V I E W |
yyalda |
Posted - Sep 26 2006 : 08:44:58 AM 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
|
14 L A T E S T R E P L I E S (Newest First) |
support |
Posted - Apr 24 2008 : 12:45:14 AM case=2939 is fixed in build 1635 |
feline |
Posted - Oct 10 2006 : 1:12:02 PM *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 |
yyalda |
Posted - Oct 09 2006 : 8:42:42 PM 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. |
feline |
Posted - Oct 09 2006 : 10:03:44 AM 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. |
yyalda |
Posted - Oct 07 2006 : 8:19:36 PM 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.
|
feline |
Posted - Oct 07 2006 : 12:58:19 PM 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. |
yyalda |
Posted - Oct 05 2006 : 9:20:16 PM 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.
|
feline |
Posted - Oct 05 2006 : 11:22:27 AM 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. |
yyalda |
Posted - Oct 05 2006 : 08:45:56 AM 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. |
feline |
Posted - Oct 05 2006 : 08:15:10 AM 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. |
yyalda |
Posted - Oct 03 2006 : 7:52:23 PM 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.
|
feline |
Posted - Oct 03 2006 : 1:32:54 PM 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? |
yyalda |
Posted - Oct 03 2006 : 08:46:25 AM 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.
|
feline |
Posted - Oct 03 2006 : 07:26:20 AM 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. |
|
|