mirror of https://github.com/axmolengine/axmol.git
85 lines
2.8 KiB
C++
85 lines
2.8 KiB
C++
|
#include "TG3.h"
|
|||
|
#include "[!output PROJECT_NAME]UnicodeScript_str.h"
|
|||
|
#include "TCOM.h"
|
|||
|
#include "TG3AppDllEntry.h"
|
|||
|
|
|||
|
// 提供IID的具体定义,在整个项目中只能包含一次
|
|||
|
#include "TCOM_Generic_DataType_IIDs.h"
|
|||
|
#include "TCOM_Generic_Method_IIDs.h"
|
|||
|
#include "TCOM_IIDs.h"
|
|||
|
|
|||
|
// 定义类工厂例子代码:
|
|||
|
// class Texample_MethodClassFactory; //仅仅为了代码编辑辅助工具正确显示
|
|||
|
// TCOM_DECLARE_CLASS_FACTORY(Texample_MethodClassFactory);
|
|||
|
// TCOM_IMPLEMENT_CLASS_FACTORY(Texample_MethodClassFactory,TexampleDataType);
|
|||
|
// 应用根据给出的CLSID和ClassFactory接口IID返回ClassFactory的接口
|
|||
|
// 返回值:参考TCOM_S_系列宏定义
|
|||
|
HRESULT TCOM_Srv_GetClassObject(TREFCLSID rclsid, TREFIID riid, LPVOID * ppv)
|
|||
|
{
|
|||
|
HRESULT result = TCOM_S_E_ERROR;
|
|||
|
// 构造出TCOM对象例子
|
|||
|
//if (rclsid == TCLSID_example_Method)
|
|||
|
//{
|
|||
|
// Texample_MethodClassFactory *pFactory = new Texample_MethodClassFactory();
|
|||
|
// if(pFactory)
|
|||
|
// {
|
|||
|
// result = pFactory->QueryInterface(riid, ppv);
|
|||
|
// if(TCOM_S_FAIL(result))
|
|||
|
// {
|
|||
|
// delete pFactory;
|
|||
|
// TCOM_DecClsidInstanceRefCount();
|
|||
|
// }
|
|||
|
// }
|
|||
|
//}
|
|||
|
|
|||
|
return result;
|
|||
|
}
|
|||
|
|
|||
|
// 应用提供的把TCOM信息加入到注册表
|
|||
|
// 返回值:参考TCOM_S_系列宏定义
|
|||
|
HRESULT TCOM_Srv_RegisterServer(void)
|
|||
|
{
|
|||
|
TCOM_ApplicationRegister * pAppRegister = NULL;
|
|||
|
pAppRegister = new TCOM_ApplicationRegister( AppName_[!output PROJECT_NAME] );
|
|||
|
if(pAppRegister == NULL)
|
|||
|
{
|
|||
|
return TCOM_S_E_ERROR;
|
|||
|
}
|
|||
|
|
|||
|
// 注册例子:
|
|||
|
// pAppRegister->RegisterCLSID(TCLSID_example_Method, TCOM_CLSCTX_INPROC_SERVER);
|
|||
|
// pAppRegister->RegisterDataType( TTID_TCOM_PlugIn_DataType);
|
|||
|
// pAppRegister->RegisterMethod( TTID_TCOM_PlugIn_DataType, TIID_SYS_Method_Open,
|
|||
|
// TCLSID_example_Method, TCOM_METHOD_MASK_NORMAL, AppName_example );
|
|||
|
if(pAppRegister)
|
|||
|
{
|
|||
|
delete pAppRegister;
|
|||
|
pAppRegister = NULL;
|
|||
|
}
|
|||
|
return TCOM_S_OK;
|
|||
|
}
|
|||
|
|
|||
|
// 应用提供的把TCOM信息从注册表中删除
|
|||
|
// 返回值:参考TCOM_S_系列宏定义
|
|||
|
HRESULT TCOM_Srv_UnregisterServer(void)
|
|||
|
{
|
|||
|
TCOM_ApplicationRegister * pAppRegister = NULL;
|
|||
|
pAppRegister = new TCOM_ApplicationRegister( AppName_[!output PROJECT_NAME] );
|
|||
|
if(pAppRegister == NULL)
|
|||
|
{
|
|||
|
return TCOM_S_E_ERROR;
|
|||
|
}
|
|||
|
|
|||
|
// 注销例子
|
|||
|
// pAppRegister->UnregisterMethod(TTID_TCOM_PlugIn_DataType, TIID_SYS_Method_Open, TCLSID_example_Method);
|
|||
|
// pAppRegister->UnregisterDataType( TTID_TCOM_PlugIn_DataType );
|
|||
|
// pAppRegister->UnregisterCLSID(TCLSID_example_Method);
|
|||
|
if(pAppRegister)
|
|||
|
{
|
|||
|
delete pAppRegister;
|
|||
|
pAppRegister = NULL;
|
|||
|
}
|
|||
|
|
|||
|
return TCOM_S_OK;
|
|||
|
}
|