DotNet Visual C: identifier not found error, undeclared identifier

  • aarthi28_gmail_com / 206 / Sun, 31 Jan 2010 07:21:00 GMT / Comments (3)
  • 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-
    Quote:
    Originally Posted by
    >ExecQuery(strQL,strQuery,WBEM_FLAG_RETURN_IMMEDIAT ELY,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

  • Keywords:

    identifier, error, undeclared, dotnet, visual, .net

  • http://dotnet.itags.org/visual-c/71211/«« Last Thread - Next Thread »»
    1. aarthi28...gmail.com wrote:
      Quote:
      Originally Posted by
      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.

      iancollins | Fri, 04 Jan 2008 12:33:00 GMT |

    2. * aarthi28...gmail.com:
      Quote:
      Originally Posted by
      Hi,

      Hi.

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

      Follow-ups set for pure C++ responses.

      Quote:
      Originally Posted by
      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.

      Quote:
      Originally Posted by
      'EOAC_NONE' : undeclared identifier

      Ditto.

      Quote:
      Originally Posted by
      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).

      Quote:
      Originally Posted by
      #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'...

      Quote:
      Originally Posted by
      #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]
      Quote:
      Originally Posted by
      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'.

      Quote:
      Originally Posted by
      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?

      alfp_steinbach | Fri, 04 Jan 2008 12:34:00 GMT |

    3. On 26 Feb, 00:28, aarth......gmail.com wrote:
      Quote:
      Originally Posted by
      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

      chris_doran_postmaster_co_uk | Fri, 04 Jan 2008 12:35:00 GMT |