?? utilities.cpp
字號:
// =====================================================
// OpenObjects Utilities
//
// Design and Implementation by Floris van den Berg
//
// Copyright (c) 2002 Pylon
// =====================================================
#include "OpenObjects.h"
// --------------------------------------------------------
SERVER_API int DLL_CALLCONV
EpStringFromGuid(char *result, CLSID clsid) {
LPOLESTR s = (LPOLESTR)CoTaskMemAlloc(1024);
StringFromCLSID(clsid, &s);
int temp = WideCharToMultiByte(CP_ACP, 0, s, -1, result, result ? 1024 : 0, NULL, NULL);
strcpy(result, result);
CoTaskMemFree(s);
return temp;
}
SERVER_API bool DLL_CALLCONV
EpRegisterComponent(GUID family, GUID id, ObjectCreateProc create) {
IServiceManager *service_manager = NULL;
IServiceRegisterable *registerable = NULL;
// fail if the create proc is invalid
if (!create)
return false;
// retrieve a handle to the service manager
if (GetServiceManager((void **)&service_manager) != S_OK)
return false;
// component doesn't exist already?
if (service_manager->ObjectExists(family, id)) {
service_manager->Release();
return false;
}
// add the component to the registerable service
if (service_manager->GetService(CLSID_SERVICE_REGISTERABLE, (void **)®isterable) != S_OK) {
service_manager->Release();
return false;
}
// add the component
registerable->RegisterComponent(family, id, create);
// remove the interfaces
registerable->Release();
service_manager->Release();
return true;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -