/** * Opens the Door! :) * * Parameters: * >szDoor * Path to lock device for the door. * * Returns: * N/A. */ void perco_exchange::openDoor(_In_ STLADD string_unique_ptr_t&& szDoor) { ATL::CComPtr<PERCo_S20_SDK::IExchangeMain> percoXchg; if (SUCCEEDED(percoXchg.CoCreateInstance(__uuidof(PERCo_S20_SDK::CoExchangeMain)))) { if (SUCCEEDED(percoXchg->SetConnect(PERCO_HOST, PERCO_PORT, PERCO_LOGIN, PERCO_PWD))) { BSTR szDBVersion; BSTR szSDKVersion; if (!percoXchg->CheckVersion(&szDBVersion, &szSDKVersion)) { ATL::CComPtr<IXMLDOMDocument2> request = getSendCommandsRequest(std::move(szDoor)); AtlTrace2(ATL::atlTraceGeneral, 0, "Sending the 'sendcommands' request.\r\n"); if (request && SUCCEEDED(percoXchg->ExecuteCommand(request))) { AtlTrace2(ATL::atlTraceGeneral, 0, "PERCo has responded to the 'sendcommands' request.\r\n"); } } percoXchg->DisConnect(); } } else { AtlTrace2(ATL::atlTraceCOM, 0, "'PERCo_S20_SDK::IExchangeMain' ain't registered.\r\n"); } }