How can I use OO4O in COM+ object that written by VC++?

From: Heo, Jin Young <jrriu_at_korea.com>
Date: 28 Jul 2003 10:27:18 -0700
Message-ID: <8a3f8153.0307280927.4a6e39a5_at_posting.google.com>



Hello.. I wrote follow code, but it is not work... pool size is 0..

OO4O in COM+ object very confuse me... T.T

How can I use OO4O in COM+ object that written by VC++?

  • code ===========================
    1. first try

    _IOraSessionPtr m_pOraSession;

     OStartup(OSTARTUP_MULTITHREADED);         

     hr = ::CoCreateInstance( clsID, NULL, CLSCTX_INPROC_SERVER, IID__IOraSession, (void **)&m_pOraSession);

     if(FAILED(hr))
         strMsg = _bstr_t("bad IID &#44032;
&#50500;&#45772;&#44032;&#48400;");
     else
     {
         hr = m_pOraSession->CreateDatabasePool(1, 10, 100,
_bstr_t("matizdb"), _bstr_t("scott/tiger"), 0);                         
	m_lPoolSize = m_pOraSession->get_DbPoolCurrentSize();
     }

     OShutdown();

2. second

    IDispatchPtr m_pDisp;

    m_pDisp = IDispatchPtr( __uuidof( OraSession ) );  

    OLECHAR* szName;
    DISPID m_dispidCreateDatabase;
    szName = L"CreateDatabasePool"
    m_pDisp->GetIDsOfNames(IID_NULL, &szName, 1, LOCALE_SYSTEM_DEFAULT, &m_dispidCreateDatabase);

    VARIANT m_varg, m_retval;
    DISPPARAMS m_dispparams;

     VariantInit(&m_varg);
VariantInit(&m_retval);

		m_dispparams.rgvarg = NULL;
		m_dispparams.cArgs = 0;
		m_dispparams.rgdispidNamedArgs = NULL;
		m_dispparams.cNamedArgs = 0;

		m_pDisp->Invoke(m_dispidCreateDatabase, IID_NULL,
LOCALE_SYSTEM_DEFAULT, DISPATCH_METHOD, &m_dispparams, NULL, NULL, NULL); Received on Mon Jul 28 2003 - 19:27:18 CEST

Original text of this message