On that sample code (just part of it), it just show me :
BEGIN_TEST_MAP(CVTxDeRatio)
UpdateRegistry(BOOL bRegister)
_CreatorClass
And here's the H file sample code (they are more methods in the original one) :
class
ATL_NO_VTABLE CVTxDeRatio : public _CVTxDeRatioBaseImpl, public ILecSWTestProcessorImpl{
public
:DECLARE_REGISTRY_RESOURCEID(IDR_VTXDERATIO)
DECLARE_NOT_AGGREGATABLE(CVTxDeRatio)
BEGIN_COM_MAP(CVTxDeRatio)
COM_INTERFACE_ENTRY(CVTxDeRatio)
COM_INTERFACE_ENTRY(ILecSWTest)
COM_INTERFACE_ENTRY_CHAIN(_CVTxDeRatioBaseImpl)
END_COM_MAP()
BEGIN_TEST_MAP(CVTxDeRatio)
TEST_MAP_ENTRY(WHICHTEST_Standard, StandardTest, L
"Standard Test", L"Preliminary STest")END_TEST_MAP_WITH_LEAK_TEST
DECLARE_PROTECT_FINAL_CONSTRUCT()
public
:CVTxDeRatio():
m_inputPin(GetUnknown()),
m_outputPin(GetUnknown())
{
m_stethoStartId = m_stethoscope.AssociateNameWithId(L
"VTxDeRatio::Start");m_stethoVoltageId = m_stethoscope.AssociateNameWithId(L
"VTxDeRatio::Voltage");m_stethoAverageId = m_stethoscope.AssociateNameWithId(L
"VTxDeRatio::Average");}
HRESULT FinalConstruct();
//------------------------------------------------------------------------------------------
// ILecResultProcessorBatchingImpl (overridden methods)
HRESULT UpdateFromInputResults(std::vector<SLecResultInfo> & rvecInputResultInfo,
bool bInputOrMyDefinitionChanged);So all the methods like UpdateFromInputResults(), FinalConstruct(), etc... are missing in calss view.
Note that if I comment these 3 lines, then class view is working fine (but my build fail) :
//BEGIN_TEST_MAP(CVTxDeRatio)
// TEST_MAP_ENTRY(WHICHTEST_Standard, StandardTest, L"Standard Test", L"Preliminary STest")
//END_TEST_MAP_WITH_LEAK_TEST
So there's probably a problem with Class View and macros... but why it break the full class view sparsing
Class View don't show all members
DatabaseOgre
I could not reproduce the problem with just the sample code you provided.
Can you also provide the definitions that you are using for "BEGIN_TEST_MAP", "TEST_MAP_ENTRY" and "END_TEST_MAP_WITH_LEAK_TEST".
Based on the information you provided, the problem is probably caused because of the MAP processing code in the intellisense parser. Since MAPs are not true C++ Language constructs, we have to use heuristics to guess what is a map and what is not. In general an identfier that begins with "BEGIN_" and ends in "_MAP" is assumed as the start of a map and an identifier that begins with "END_" and ends in "_MAP" would indicate the end of a map.
Something worthwhile to try would be to do the following:
Rename your "END_TEST_MAP_WITH_LEAK_TEST" macro to "END_LEAK_TEST_MAP" (and make it a macro that takes no args by adding "()") and change the corresponding BEGIN_TEST_MAP macro too.
Basically the code would look something like:
BEGIN_LEAK_TEST_MAP(CVTxDeRatio)
TEST_MAP_ENTRY(WHICHTEST_Standard, StandardTest, L"Standard Test", L"Preliminary STest")
END_LEAK_TEST_MAP()
Of course you also have to go and change the definitions of these macros to reflect the name and parameter change
Is it possible for you to provide this extra information so that we can investigate this issue further
My E-Mail address is below if you want to send it to me directly rather than posting the code here.
Thanks for taking the time to report the problem to Microsoft.
- Ameya Limaye
AmeyaL(thisIsTheAtSign)(MSFTFullForm)(dot)com
DWS
END_TEST_WITH_LEAK_MAP
and it works.
I add a '2' or something else an the end, and it doesn't work.
Thierry