identifier not found error, undeclared identifier

Discussion in 'C++' started by aarthi28@gmail.com, Feb 25, 2007.

  1. Guest

    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
     
    , Feb 25, 2007
    #1
    1. Advertising

  2. * :
    > 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?
     
    Alf P. Steinbach, Feb 26, 2007
    #2
    1. Advertising

  3. Guest

    On 26 Feb, 00:28, 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
     
    , Feb 26, 2007
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Ron Natalie

    Re: undeclared identifier?

    Ron Natalie, Jul 21, 2003, in forum: C++
    Replies:
    0
    Views:
    425
    Ron Natalie
    Jul 21, 2003
  2. Victor Bazarov

    Re: undeclared identifier?

    Victor Bazarov, Jul 21, 2003, in forum: C++
    Replies:
    2
    Views:
    2,645
    rajiv04
    Jul 22, 2003
  3. craigbeanhead
    Replies:
    6
    Views:
    543
    Jack Klein
    Jul 27, 2003
  4. craigbeanhead
    Replies:
    1
    Views:
    410
    Eric Sosman
    Jul 24, 2003
  5. yttrium
    Replies:
    12
    Views:
    1,390
    Jonathan Bromley
    Jan 5, 2007
Loading...

Share This Page