PXV_Inst ActiveX Object

From PDF XChange PDF SDK
Jump to: navigation, search
Line 23: Line 23:
 
For example, in C#:
 
For example, in C#:
  
<pre style="display: inline-block;"><pre class="brush:cpp;gutter:false">
+
<source lang="cpp">
 
AxPDFXEdit.AxPXV_Inst pdfInst = new AxPDFXEdit.AxPXV_Inst();
 
AxPDFXEdit.AxPXV_Inst pdfInst = new AxPDFXEdit.AxPXV_Inst();
</pre></pre>
+
</source>
  
 
<pre class="brush:cpp;gutter:false">
 
<pre class="brush:cpp;gutter:false">

Revision as of 17:19, 1 June 2015


Overview

The main ActiveX Object of PDF-XChange Editor SDK that provides part of general functionality and gives access to an additional extensions of SDK.

The GUID of object is:

{973BF60B-4CC6-4be0-B408-3D80E07FC2E6}

The interface of control is:

IPXV_Inst

How to Instantiate

You may instantiate the object in standard way by using the CoCreateInstance function or by any other method that is appropriate for instantiating of ActiveX-objects in your programming language.

For example, in C#:

AxPDFXEdit.AxPXV_Inst pdfInst = new AxPDFXEdit.AxPXV_Inst();
AxPDFXEdit.AxPXV_Inst pdfInst = new AxPDFXEdit.AxPXV_Inst();


In VB6:

Dim pdfInst As PDFXEdit.PXV_Inst
...    
Set pdfInst = New PDFXEdit.PXV_Inst


In C++:

CComPtr<IPXV_Inst> spPDFInst;
HRESULT hr = CoCreateInstance(__uuidof(PXV_Inst), nullptr, CLSCTX_INPROC_SERVER, __uuidof(IPXV_Inst), (void**)&spPDFInst);


Also, exists other special way to get pointer to IPXV_Inst interface. For example, in C++:


typedef HRESULT (__cdecl *t_pPXV_GetInstance)(IPXV_Inst** ppInst);

#if defined _M_IX86
#define SDK_LIB_NAME	L"PDFXEditCore.x86.DLL"
#else
#define SDK_LIB_NAME	L"PDFXEditCore.x64.DLL"
#endif

CComPtr<IPXV_Inst> spPDFInst;
HMODULE hSDKLib = LoadLibrary(SDK_LIB_NAME);
t_pPXV_GetInstance pfn = (t_pPXV_GetInstance)GetProcAddress(hSDKLib, "PXV_GetInstance");
HRESULT hr = pfn(&spPDFInst);

- with this special method you will be able to use SDK without regular installation of ActiveX objects from SDK on the client machines. In other words - without standard registering of all ActiveX-objects from the SDK. And it will work for you, excepting one moment - in this case you will be unable to instantiate the simple ActiveX Control (PXV_Control).

How to Use

Firstly you need call IPXV_Inst::Init function before any use of the SDK. But, if you've created a PXV_Control object before, you may not call this function, because it has already been done through the creating of PXV_Control-object. Another important point: when you finishing work with the SDK, you should call IPXV_Inst::Shutdown method to release all used resources, to stop correctly all working threads, etc. But, if IPXV_Inst::Init method had not been called directly and only simple PXV_Control was used, then you may not call it. Also, in conclusion, the IPXV_Inst::Shutdown method should be called the same number of times as IPXV_Inst::Init was called.