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;
|
||
}
|