⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utilities.cpp

📁 .net 方面的开发说明资料。
💻 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 **)&registerable) != 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 + -