Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.
#include "pch.h"
#include "comdef.h"
using namespace System;
String^ lateBinding(String^ file)
{
    String^ text;
    DISPID dispid;
    DISPPARAMS dp = { NULL, NULL, 0, 0 };
    VARIANTARG vargs[1];
    VARIANT arg, result;
    WCHAR str[255];
    CLSID pclsid;
    // Create ComHelper
    IDispatch* comHelperPtr;
    wcscpy_s(str, L"Aspose.Pdf.ComHelper");
    CLSIDFromProgID(str, &pclsid);
    HRESULT hr = CoCreateInstance(pclsid, NULL, CLSCTX_ALL, IID_IDispatch, (void**)&comHelperPtr);
    if (FAILED(hr))
    {
        Console::WriteLine(L"Error occured");
    }
    else
    {
        // Set license
        IDispatch* licPtr;
        wcscpy_s(str, L"Aspose.Pdf.License");
        CLSIDFromProgID(str, &pclsid);
        HRESULT hr = CoCreateInstance(pclsid, NULL, CLSCTX_ALL, IID_IDispatch, (void**)&licPtr);
        OLECHAR* setLicense = L"SetLicense";
        hr = licPtr->GetIDsOfNames(IID_NULL, &setLicense, 1, GetUserDefaultLCID(), &dispid);
        arg.vt = VT_BSTR;
        BSTR lic = SysAllocString(L"C:\\Temp\\Aspose.Pdf.lic");
        arg.bstrVal = lic;
        vargs[0] = arg;
        dp.rgvarg = vargs;
        dp.cArgs = 1;
        hr = licPtr->Invoke(dispid, IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD, &dp, &result, NULL, NULL);
        SysFreeString(lic);
        licPtr->Release();
        // Get Document
        OLECHAR* openFile = L"OpenFile";
        hr = comHelperPtr->GetIDsOfNames(IID_NULL, &openFile, 1, GetUserDefaultLCID(), &dispid);
        arg.vt = VT_BSTR;
        arg.bstrVal = (BSTR)System::Runtime::InteropServices::Marshal::StringToBSTR(file).ToPointer();
        vargs[0] = arg;
        dp.rgvarg = vargs;
        dp.cArgs = 1;
        hr = comHelperPtr->Invoke(dispid, IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD, &dp, &result, NULL, NULL);
        IDispatch* docPtr = result.pdispVal;
        comHelperPtr->Release();
        // Get Pages for the Document
        OLECHAR* pages = L"Pages";
        hr = docPtr->GetIDsOfNames(IID_NULL, &pages, 1, GetUserDefaultLCID(), &dispid);
        dp.cArgs = 0;
        hr = docPtr->Invoke(dispid, IID_NULL, GetUserDefaultLCID(), DISPATCH_PROPERTYGET, &dp, &result, NULL, NULL);
        IDispatch* pagesPtr = result.pdispVal;
        // Create Absorber
        IDispatch* absorberPtr;
        wcscpy_s(str, L"Aspose.PDF.Text.TextAbsorber");
        CLSIDFromProgID(str, &pclsid);
        hr = CoCreateInstance(pclsid, NULL, CLSCTX_ALL, IID_IDispatch, (void**)&absorberPtr);
        // Browse text
        arg.vt = VT_DISPATCH;
        arg.pdispVal = absorberPtr;
        vargs[0] = arg;
        dp.rgvarg = vargs;
        dp.cArgs = 1;
        OLECHAR* accept_4 = L"Accept_4";
        hr = pagesPtr->GetIDsOfNames(IID_NULL, &accept_4, 1, GetUserDefaultLCID(), &dispid);
        hr = pagesPtr->Invoke(dispid, IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD, &dp, &result, NULL, NULL);
        // Retrieve text
        OLECHAR* _text = L"Text";
        dp.cArgs = 0;
        hr = absorberPtr->GetIDsOfNames(IID_NULL, &_text, 1, GetUserDefaultLCID(), &dispid);
        hr = absorberPtr->Invoke(dispid, IID_NULL, GetUserDefaultLCID(), DISPATCH_PROPERTYGET, &dp, &result, 0, 0);
        text = gcnew String(result.bstrVal);
        docPtr->Release();
        pagesPtr->Release();
        absorberPtr->Release();
    }
    return text;
}
int main(array<System::String^>^ args)
{
    if (args->Length != 1)
    {
        Console::WriteLine("Missing parameters\nUsage:testCOM.exe <pdf file>");
        return 0;
    }
    CoInitialize(NULL);
    String^ text = lateBinding(args[0]);
    CoUninitialize();
    Console::WriteLine("Extracted text:");
    Console::WriteLine("---\n{0}", text != nullptr ? text->Trim() : "<empty>");
    Console::WriteLine("---");
    return 0;
}
Analyzing your prompt, please hold on...
An error occurred while retrieving the results. Please refresh the page and try again.