?? clientinit.cpp
字號:
#include "KSCOM.h"
#include "KSMemoryRegister.h"
#include "KSAssertRegister.h"
#include "KSFileRegister.h"
#include "KAEZipArchive.h"
#include "KAEZipArchiveImport.h"
#include "KAEZipArchiveRegister.h"
#include "ClientInit.h"
// =====================================================================================-
// * Client Init Data Part
// *
// * typedef struct tagKSCOM_CLIENT_INIT{
// * int nRegFlag; // Register Flag
// * KSCOMClientRegFun *pfKSCOMClientRegister; // Register Function
// * KSCOMClientUnRegFun *pfKSCOMClientUnRegister; // UnRegister Function
// * int nInitFlag; // Initialize Flag
// * KSCOMClientInitFun *pfKSCOMClientInit; // Initialize Function
// * KSCOMClientUnInitFun *pfKSCOMClientUnInit; // UnInitialize Function
// * } KSCOM_CLIENT_INIT;
//
// =====================================================================================-
static const int g_cnKSCOMCount = 4;
static KSCOM_CLIENT_INIT g_KSCOMClientInit[g_cnKSCOMCount] = {
{
false, KSAssertRegFactory, KSAssertUnRegFactory,
false, NULL, NULL
},
{
false, KSMemoryRegFactory, KSMemoryUnRegFactory,
false, NULL, NULL
},
{ false, KSFileRegFactory, KSFileUnRegFactory,
false, NULL, NULL
},
{
false, KAEZipArchiveRegFile, KAEZipArchiveUnRegFile,
false, KAEZipArchiveInit, KAEZipArchiveUnInit
}
};
// =====================================================================================-
// Client Init Public Implement
// =====================================================================================-
static int RegisterComponent()
{
int Result = false;
KSCOMRESULT krRetCode = KSCOM_E_FAIL;
for (int i = 0; i < g_cnKSCOMCount; i++)
{
if (g_KSCOMClientInit[i].pfKSCOMClientRegister != NULL)
{
krRetCode = g_KSCOMClientInit[i].pfKSCOMClientRegister();
if (FAILED(krRetCode))
goto Exit0;
g_KSCOMClientInit[i].nRegFlag = true;
}
}
Result = true;
Exit0:
if (!Result)
{
for (int i = g_cnKSCOMCount; i > 0; i--)
{
if (g_KSCOMClientInit[i - 1].nRegFlag)
{
if (g_KSCOMClientInit[i - 1].pfKSCOMClientUnRegister != NULL)
g_KSCOMClientInit[i - 1].pfKSCOMClientUnRegister();
}
}
}
return Result;
}
static int UnRegisterComponent()
{
for (int i = g_cnKSCOMCount; i > 0; i--)
{
if (g_KSCOMClientInit[i - 1].pfKSCOMClientUnRegister != NULL)
g_KSCOMClientInit[i - 1].pfKSCOMClientUnRegister();
}
return true;
}
int ClientInitialize()
{
int i = 0;
int Result = false;
int nRetCode = false;
int nInitKCOMFlag = false;
int nRegisterComponentFlag = false;
KSCOMRESULT kr = KSCOM_S_OK;
kr = KSCoInitialize();
if (FAILED(kr))
goto Exit0;
nInitKCOMFlag = true;
nRetCode = RegisterComponent();
if (!nRetCode)
goto Exit0;
nRegisterComponentFlag = true;
for (i = 0; i < g_cnKSCOMCount; i++)
{
if (NULL != g_KSCOMClientInit[i].pfKSCOMClientInit)
{
nRetCode = g_KSCOMClientInit[i].pfKSCOMClientInit();
if (!nRetCode)
goto Exit0;
g_KSCOMClientInit[i].nInitFlag = true;
}
}
Result = true;
Exit0:
if (!Result)
{
for (i = g_cnKSCOMCount; i > 0; i--)
{
if (g_KSCOMClientInit[i - 1].nInitFlag)
{
if (NULL != g_KSCOMClientInit[i - 1].pfKSCOMClientUnInit)
g_KSCOMClientInit[i - 1].pfKSCOMClientUnInit();
}
}
if (nRegisterComponentFlag)
UnRegisterComponent();
if (nInitKCOMFlag)
KSCoUnInitialize();
}
return Result;
}
int ClientUnInitialize()
{
int Result = false;
int nRetCode = false;
KSCOMRESULT kr = KSCOM_S_OK;
for (int i = g_cnKSCOMCount; i > 0; i--)
{
if (NULL != g_KSCOMClientInit[i - 1].pfKSCOMClientUnInit)
{
nRetCode = g_KSCOMClientInit[i - 1].pfKSCOMClientUnInit();
if (!nRetCode)
goto Exit0;
}
}
nRetCode = UnRegisterComponent();
if (!nRetCode)
goto Exit0;
kr = KSCoUnInitialize();
if (FAILED(kr))
goto Exit0;
Result = true;
Exit0:
return Result;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -