How-To: Set up HOOPS Visualize HPS MFC_Sandbox to work with HOOPS Exchange API

HOOPS Visualize sandbox works with HOOPS Exchange integration as this page.
https://techsoft3d.atlassian.net/servicedesk/customer/portal/11/article/768049505
When you want to use HOOPS Exchange API directly in sandbox, you will need to load and initialize HOOPS Exchange library as followings.
Initializing HOOPS Exchange — HOOPS Exchange 2022_SP2 documentation

Instructions for HPS_MFC_Sandbox

  1. Open the project properties from Visual Studio with a right click
  2. Navigate to C/C++ → General and add $(HEXCHANGE_INSTALL_DIR)\include in Additional Include Directories
    HEXCHANGE_INSTALL_DIR is a environment variable. Its value must be the root of a HOOPS Exchange package before launching Visual Studio.

  1. Navigate to C/C++ → Preprocessor and add USING_EXCHANGE in Preprocessor Definitions

  1. Navigate to Linker → Input and add hps_sprk_exchange.lib in Additional Dependencies

  1. Add include and define the macro in CHPSApp.cpp
#define INITIALIZE_A3D_API
#include <A3DSDKIncludes.h>
  1. Add the following code to CHPSApp::InitInstance() to load and initialize HOOPS Exchange library
A3DBool loaded = A3DSDKLoadLibrary(bin_dir.str().data());
assert(loaded);
A3DLicPutUnifiedLicense(HOOPS_LICENSE);
A3DStatus result = A3DDllInitialize(A3D_DLL_MAJORVERSION, A3D_DLL_MINORVERSION);
assert(result == A3D_SUCCESS);

  1. Add the following code to CHPSApp::ExitInstance() to terminate and unload the library
#ifdef USING_EXCHANGE
	{
		A3DDllTerminate();
		A3DSDKUnloadLibrary();
	}
#endif
  1. Add include A3DSDKIncludes.h in CHPSView.cpp

image-20220805-065643

  1. Add your code to CHPSView::OnUserCode() with HOOPS Exchange API