DELMIA - PPR Navigator Editor (PRN1)

General Issues

None  

Open Issues

VBA Support for 64-bit DPE Client

VBA 32-bit application is supported with 32-bit version of DPE client. However, in Visual Studio 2008, Microsoft has stopped native support for 64-bit version of VBA. This section provides information on the the work-around being provided to this in DPE and its limitations

 

32-bit software is supported on Windows 64-bit platform as a 32-bit processes. It is executed inside the dedicated Windows on Windows’ (WOW64) subsystem that is part of all 64-bit Windows operating systems. Using Inter-process communication (IPC) technique, a 32-bit out-of-process COM component is now being used to support VBA with DPE 64-bit Client. A separate 32-bit process EPVBAProcess.exe is launched whenever any VBA functionality is invoked.

That is, this would happen whenever - a VBA IDE is opened OR VBA Macro is executed OR VBA Macro is loaded into script command properties dialog.


There are a some limitations with this out-of-process VBA support in 64-bit DPE client:


Limitation 1: VBA macros created in 32-bit DPE client can only be viewed in 64-bit DPE - cannot be executed. Trying to execute will generate an error message as shown below:

VBA_Error

This happens because the project items; example: Data, Config, Dialog... that are used in 32-bit DPE client is now different in 64-bit DPE client.
 
Work around: Export the VBA macro and import it in newly created VBA project. This can be done using the following steps:

  1. In 64-bit DPE client, open the VBA project that was created in 32-bit DPE client. This can be done by choosing the VBA Project with RMB and selecting “Open VBA IDE”
  2. Under File menu, select “Export File” to export all the VBA contents
  3. Create a new project in 64-bit DPE client and use the “Import File” option in VBA IDE to import the VBA content

Limitation 2: Intellisense does not work correctly when you type something in VBA IDE and press Ctrl + Space bar. 

  1. In VBA IDE enter few letters example: Msg and press “ctrl + space” in keyboard
  2. In 32-bit DPE client remaining string gets appended i.e. MsgBox
  3. However, in 64-bit DPE client, remaining string does not get appended

Work Around: First press Ctrl + Space and then start typing the required function


Limitation 3: GetTypeInfo method of XScriptItemConfig class is no longer supported in 64-bit DPE client

Work Around: Use GetTypeInfoEx. All instances of GetTypeInfo while running on 64bit platform should be converted to GetTypeInfoEx.

 

Limitation 4: Such an architecture (IPC) ensures the same level of functionality but may not ensure the same level of performance.
 
On Windows 64-bit, additional communication and marshalling steps are now needed to cross process boundaries and load/execute a VBA macro. These additional steps are fully managed by the Windows COM/OLE infrastructure but will take additional time to perform these activities. Hence a small performance degradation can be expected when the VBA is loaded/executed on Windows 64-bit platform.

   

Documentation Addenda

None