XMS 所附的大部分 C++ 類別都有提供一個 getHandle() 方法。C++ 應用程式可呼叫物件的 getHandle() 方法, 以擷取 C 應用程式在存取物件時所用的控點。如此一來,C++ 應用程式可藉由呼叫 C API 中的函數, 使用控點來存取物件。
#include <xms.hpp> using namespace std; int main(int argc, char *argv[]) { xms::ConnectionFactory cf; xms::Connection conn; xmsHConn hConn; cf.setIntProperty(XMSC_CONNECTION_TYPE, XMSC_CT_RTT); cf.setIntProperty(XMSC_RTT_CONNECTION_PROTOCOL, XMSC_RTT_CP_TCP); cf.setStringProperty(XMSC_RTT_HOST_NAME, "localhost"); cf.setIntProperty(XMSC_RTT_PORT, 1506); conn = cf.createConnection(); // 擷取連線的控點。 hConn = conn.getHandle(); // 使用所擷取的控點,呼叫 C API 函數。 xmsConnStart(hConn, NULL); // 此處為其他程式碼 return(0); }
透過物件的控點,C++ 應用程式可藉由呼叫適當的 C API 函數來關閉或刪除物件。不過, 如果 C++ 應用程式以此方式來關閉或刪除物件, 應用程式再也無法透過 C++ API 來使用物件。
如果 C++ 應用程式需要使用只有 C API 才有的函數, 則能夠使用 C API 將大有幫助。會以參照形式來傳回字串或位元組陣列的 C 函數 中所述的函數即為這類函數的範例。