this is Tlb style. CAAIAObject is my Customer Class. how to translate it to COM style

void GetCustomObjectFactory(CPartDoc* pPartDoc)
{
    // Step 1: Get the Part object
    CPart pCurrentPart;
    LPDISPATCH pPartDispatch = pPartDoc->GetPart(); // Assuming GetPart returns LPDISPATCH
    if (pPartDispatch)
    {
        pCurrentPart.AttachDispatch(pPartDispatch);
    }
    else
    {
        AfxMessageBox(_T("Failed to get Part from PartDoc"));
        return;
    }

    // Step 2: Prepare the BSTR identifier
    BSTR qId = SysAllocString(L"CAAIAObject");
    if (!qId)
    {
        AfxMessageBox(_T("Failed to allocate BSTR for identifier"));
        return;
    }

    // Step 3: Get the Factory object
    CFactory pFactory;
    LPDISPATCH pFactoryDispatch = pCurrentPart.GetCustomerFactory(&qId);
    SysFreeString(qId);  // Free the BSTR after use
    if (pFactoryDispatch)
    {
        pFactory.AttachDispatch(pFactoryDispatch);
    }
    else
    {
        AfxMessageBox(_T("Failed to get Factory from Part"));
        return;
    }

    // Step 4: Attach the custom object factory directly if CObjectGIDFactory is derived from COleDispatchDriver
    CObjectGIDFactory q_pCustomObj;
    q_pCustomObj.AttachDispatch(pFactoryDispatch);

    // Now you can use q_pCustomObj to interact with your custom object factory
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值