PC Review


Reply
Thread Tools Rate Thread

identifier not found error, undeclared identifier

 
 
aarthi28@gmail.com
Guest
Posts: n/a
 
      26th Feb 2007
Hi,
I have this code that I am trying to compile, but I am getting the
following errors

'CoInitializeSecurity': identifier not found
'EOAC_NONE' : undeclared identifier

I have pasted the code below

// Using_WMI1.cpp : Defines the entry point for the console
application.
//

#include "stdafx.h"
#include "wbemidl.h"
#include <comdef.h>


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif



void OnButtonGetinfo()
{
// TODO: Add your control notification handler code here
CoInitialize(NULL);


//Security needs to be initialized in XP first and this was the major
problem
//why it was not working in XP.

if(CoInitializeSecurity( NULL,
-1,
NULL,
NULL,
RPC_C_AUTHN_LEVEL_PKT,
RPC_C_IMP_LEVEL_IMPERSONATE,
NULL,
EOAC_NONE,
0)
!= S_OK)
return;

IWbemLocator * pIWbemLocator = NULL;
IWbemServices * pWbemServices = NULL;
IEnumWbemClassObject * pEnumObject = NULL;

BSTR bstrNamespace = (L"root\\cimv2");


if(CoCreateInstance (
CLSID_WbemAdministrativeLocator,
NULL ,
CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER ,
IID_IUnknown ,
( void ** ) & pIWbemLocator
) != S_OK)
return;

if(pIWbemLocator->ConnectServer(
bstrNamespace, // Namespace
NULL, // Userid
NULL, // PW
NULL, // Locale
0, // flags
NULL, // Authority
NULL, // Context
&pWbemServices
) != S_OK)
return;


HRESULT hRes;
// BSTR strQuery = (L"Select * from win32_Processor");
BSTR strQuery = (L"SELECT * FROM Win32_OperatingSystem");
// BSTR strQuery = (L"SELECT Name, ProcessId, Caption, ExecutablePath"
FROM Win32_Process");

// BSTR strQuery = (L"SELECT * FROM Win32_Process");

BSTR strQL = (L"WQL");
hRes = pWbemServices-
>ExecQuery(strQL,strQuery,WBEM_FLAG_RETURN_IMMEDIATELY,NULL,&pEnumObject);


if(hRes != S_OK)
{
printf("Could not execute Query");
return;
}

ULONG uCount = 1, uReturned;
IWbemClassObject * pClassObject = NULL;

hRes = pEnumObject->Reset();

if(hRes != S_OK)
{
printf("Could not Enumerate");
return;
}

hRes = pEnumObject->Next(WBEM_INFINITE,uCount, &pClassObject,
&uReturned);
if(hRes != S_OK)
{
printf("Could not Enumerate");
return;
}


VARIANT v1;
BSTR strClassProp = SysAllocString(L"NumberOfProcesses");
hRes = pClassObject->Get(strClassProp, 0, &v1, 0, 0);

if(hRes != S_OK)
{
printf("Could not Get Value");
return;
}

SysFreeString(strClassProp);

_bstr_t bstrPath = &v1; //Just to convert BSTR to ANSI
char* strPath=(char*)bstrPath;


if (SUCCEEDED(hRes))
printf(strPath);
else
printf("Error in getting object");

VariantClear( &v1 );


pIWbemLocator->Release();
pWbemServices->Release();
pEnumObject->Release();
pClassObject->Release();
CoUninitialize();

}
int _tmain(int argc, _TCHAR* argv[])
{
OnButtonGetinfo();
return 0;
}

Any help I can get will be appreciated. Thanks

 
Reply With Quote
 
 
 
 
Ian Collins
Guest
Posts: n/a
 
      26th Feb 2007
(E-Mail Removed) wrote:
> Hi,
> I have this code that I am trying to compile, but I am getting the
> following errors
>
> 'CoInitializeSecurity': identifier not found
> 'EOAC_NONE' : undeclared identifier
>
> I have pasted the code below
>
> // Using_WMI1.cpp : Defines the entry point for the console
> application.
> //
>

This is a little off topic on comp.lang.c++.

--
Ian Collins.
 
Reply With Quote
 
 
 
 
Alf P. Steinbach
Guest
Posts: n/a
 
      26th Feb 2007
* (E-Mail Removed):
> Hi,


Hi.

PLEASE DON'T CROSSPOST TO ENVIRONMENT-SPECIFIC GROUPS AND CLC++.

Follow-ups set for pure C++ responses.


> I have this code that I am trying to compile, but I am getting the
> following errors
>
> 'CoInitializeSecurity': identifier not found


This means you haven't declared that identifier, most probably you've
forgotten to include some header.


> 'EOAC_NONE' : undeclared identifier


Ditto.


> I have pasted the code below
>
> // Using_WMI1.cpp : Defines the entry point for the console
> application.
> //
>
> #include "stdafx.h"
> #include "wbemidl.h"
> #include <comdef.h>


None of these are standard C++ headers. Most probably the intention is
that "stdafx.h" should drag in the headers you're missing. Update that
file to include the relevant headers (it's also a good idea to turn off
precompiled header support for your project -- the vendor-specific
variant you're using confuses novices endlessly, allows incorrect code
to compile, and sometimes means correct code doesn't compile).


> #ifdef _DEBUG
> #define new DEBUG_NEW


Redefining a C++ keyword means your code has undefined behavior if it
uses anything from the standard library. And since it apparently uses
'new'...


> #undef THIS_FILE
> static char THIS_FILE[] = __FILE__;
> #endif
>
>
>
> void OnButtonGetinfo()
> {
> // TODO: Add your control notification handler code here
> CoInitialize(NULL);


Although environment-specific, this is a library initialization call.
It's generally unsafe to initialize libraries later than the start of
'main'. In particular, experience with this library is that late
initialization is extremely unsafe -- don't do it.


[snip]

> int _tmain(int argc, _TCHAR* argv[])


This is not a standard C++ startup function.

Moreover it's braindead even for this program's intended environment.

Use standard 'main'.


> Any help I can get will be appreciated. Thanks


You're welcome.

Cheers,

- Alf

--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
 
Reply With Quote
 
chris_doran@postmaster.co.uk
Guest
Posts: n/a
 
      26th Feb 2007
On 26 Feb, 00:28, aarth...@gmail.com wrote:
> Hi,
> I have this code that I am trying to compile, but I am getting the
> following errors
>
> 'CoInitializeSecurity': identifier not found
> 'EOAC_NONE' : undeclared identifier


A search on the VC subdirectories finds it in objidl.h, but you should

#include <objbase.h>

as is stated in the Requirements section of the MSDN description of
CoInitializeSecurity.

Chris

 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
identifier not found error, undeclared identifier aarthi28@gmail.com Windows XP WMI 3 26th Feb 2007 03:11 AM
FindWindowEx - undeclared identifier/not a member of global namesp =?Utf-8?B?U2ltb24gTWF0dGhld3M=?= Microsoft VC .NET 4 21st Mar 2005 12:02 AM
Newbie: C++ Net SQLConnection -undeclared identifier =?Utf-8?B?Um95IEZpc2hlcg==?= Microsoft Dot NET 1 11th Mar 2004 03:18 PM
Error C2065 'memset' : undeclared identifier SilverSurver Microsoft VC .NET 0 15th Sep 2003 09:22 PM
Re: error C2065: 'WH_KEYBOARD_LL' : undeclared identifier Jeff Partch Microsoft VC .NET 2 13th Sep 2003 05:24 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 11:41 PM.