CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 5 of 5
  1. #1
    Guest

    How to call COM interface calling from VC++ application?--Urgent

    HI,

    Environment: VC++5.0,WinNT.


    I have an VC++ application from which I need to call an external COM interface.
    Can any body tell how to do it. I have't worked much in COM. Please let me know in detail.

    Thanx in advance.

    NMNB


  2. #2
    Join Date
    May 1999
    Posts
    42

    Re: How to call COM interface calling from VC++ application?--Urgent

    You are asking a lot in one short question, but this should get you started. I suggest that you go to your favorite library or bookstore and find one or two books that fit your knowledge level for further assistance.

    1. In your stdafx.h file, place an import statement for the type library, something like this:

    #import "Funcs.tlb" no_namespace named_guids // for ITextFile

    2. Where you need the interface, instantiate it:

    ITextFile* pITextFile = NULL;
    HRESULT hTemp = CoCreateInstance( CLSID_TextFile,
    NULL,
    CLSCTX_ALL,
    IID_ITextFile,
    (void**) &pITextFile );
    if(FAILED(hTemp))
    {
    ::MessageBox(m_hWnd, "Creation of the Text File object failed,\n \
    Trading system will not be able to verify prices.", "CoCreateInstance Failure", MB_OK|MB_ICONERROR);
    return;
    }


    3. Use the interface, such as:

    USES_CONVERSION;
    BSTR bstrFilename = A2BSTR(cPath.GetBuffer(2));
    if(pITextFile->Create( &bstrFilename))
    {
    // do something with the file
    }
    pITextFile->Close();

    4. When done, release the pointer:

    if(pITextFile != NULL)
    {
    pITextFile->Release();
    pITextFile = NULL;
    }


  3. #3
    Join Date
    May 1999
    Posts
    35

    Re: How to call COM interface calling from VC++ application?--Urgent

    In ATL3.0 there is no need to set your smart pointers to NULL.
    And moreover in ATL2.0 we ues to use statment like
    if(m_spSomeServer!=NULL)
    {
    dosomething();
    }
    now you can call it like
    if (m_spSomeServer)
    {
    dosomething();
    }

    39639,Leslie St.
    Apt #157
    Fremont USA 94538

  4. #4
    Guest

    Re: How to call COM interface calling from VC++ application?--Urgent

    Hi,

    Thanx for the solution and I will do that. I have another question if I want to do the same stuff in a VC++ application with out using MFC How should I go about? what I mean is if I have a VC ++ console application then how do I go about calling COM interface from this application?

    NMNB


  5. #5
    Join Date
    May 1999
    Posts
    42

    Re: How to call COM interface calling from VC++ application?--Urgent

    The only MFC-specific information in my example was the reference to stdafx.h, but you can put the import statement in a different header, or in a cpp module. See the MSDN docs under "#import" for details.


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured