diff options
25 files changed, 40 insertions, 42 deletions
diff --git a/include/delphi/m_protosvc.inc b/include/delphi/m_protosvc.inc index 8e0279c170..73bc565a72 100644 --- a/include/delphi/m_protosvc.inc +++ b/include/delphi/m_protosvc.inc @@ -882,7 +882,6 @@ Copies the EVENTTYPE_AUTHREQUEST event from PROTORECVEVENT into DBEVENTINFO and Returns the result of MS_DB_EVENT_ADD
}
PSR_AUTH = '/RecvAuth';
- MS_PROTO_AUTHRECV = 'Proto/AuthRecv';
//File(s) have been received
//wParam = 0
diff --git a/include/m_protoint.h b/include/m_protoint.h index ef69a2008d..6231df6990 100644 --- a/include/m_protoint.h +++ b/include/m_protoint.h @@ -203,7 +203,7 @@ public: virtual HWND __cdecl CreateExtendedSearchUI(HWND owner);
virtual int __cdecl RecvContacts(MCONTACT hContact, PROTORECVEVENT*);
- virtual int __cdecl RecvFile(MCONTACT hContact, PROTORECVFILET*);
+ virtual int __cdecl RecvFile(MCONTACT hContact, PROTORECVFILE*);
virtual int __cdecl RecvMsg(MCONTACT hContact, PROTORECVEVENT*);
virtual int __cdecl RecvUrl(MCONTACT hContact, PROTORECVEVENT*);
diff --git a/include/m_protosvc.h b/include/m_protosvc.h index e6c7177695..0ccd3d3c46 100644 --- a/include/m_protosvc.h +++ b/include/m_protosvc.h @@ -793,20 +793,17 @@ __forceinline INT_PTR ProtoChainRecvMsg(MCONTACT hContact, PROTORECVEVENT *pre) #define PSR_AUTH "/RecvAuth"
-#define MS_PROTO_AUTHRECV "Proto/AuthRecv"
-
-__forceinline INT_PTR Proto_AuthRecv(const char *szProtoName, PROTORECVEVENT *pcre)
-{ return CallService(MS_PROTO_AUTHRECV, (WPARAM)szProtoName, (LPARAM)pcre);
-}
+// adds the standard EVENTTYPE_AUTHREQUEST event to the database
+EXTERN_C MIR_APP_DLL(MEVENT) Proto_AuthRecv(const char *szProtoName, PROTORECVEVENT *pcre);
///////////////////////////////////////////////////////////////////////////////
// File(s) have been received
// wParam = 0
-// lParam = (LPARAM)(PROTORECVFILET*)&prf
+// lParam = (LPARAM)(PROTORECVFILE*)&prf
#define PRFF_UNICODE 1
-struct PROTORECVFILET
+struct PROTORECVFILE
{
DWORD dwFlags; // PRFF_*
DWORD timestamp; // unix time
@@ -820,13 +817,13 @@ struct PROTORECVFILET #define MS_PROTO_RECVFILET "Proto/RecvFileT"
-__forceinline INT_PTR Proto_RecvFile(MCONTACT hContact, PROTORECVFILET *pcre)
+__forceinline INT_PTR Proto_RecvFile(MCONTACT hContact, PROTORECVFILE *pcre)
{
CCSDATA ccs = { hContact, PSR_FILE, 0, (LPARAM)pcre };
return CallService(MS_PROTO_RECVFILET, 0, (LPARAM)&ccs);
}
-__forceinline INT_PTR ProtoChainRecvFile(MCONTACT hContact, PROTORECVFILET *pre)
+__forceinline INT_PTR ProtoChainRecvFile(MCONTACT hContact, PROTORECVFILE *pre)
{
CCSDATA ccs = { hContact, PSR_FILE, 0, (LPARAM)pre };
return Proto_ChainRecv(0, &ccs);
diff --git a/libs/win32/mir_app.lib b/libs/win32/mir_app.lib Binary files differindex e4b132a7da..88068ccf04 100644 --- a/libs/win32/mir_app.lib +++ b/libs/win32/mir_app.lib diff --git a/libs/win64/mir_app.lib b/libs/win64/mir_app.lib Binary files differindex 68389ff7aa..93620bd47a 100644 --- a/libs/win64/mir_app.lib +++ b/libs/win64/mir_app.lib diff --git a/protocols/Gadu-Gadu/src/core.cpp b/protocols/Gadu-Gadu/src/core.cpp index dcc51fc84e..266ff97786 100644 --- a/protocols/Gadu-Gadu/src/core.cpp +++ b/protocols/Gadu-Gadu/src/core.cpp @@ -1036,7 +1036,7 @@ retry: wchar_t* filenameT = mir_a2u((char*)dcc7->filename);
- PROTORECVFILET pre = { 0 };
+ PROTORECVFILE pre = { 0 };
pre.dwFlags = PRFF_UNICODE;
pre.fileCount = 1;
pre.timestamp = time(nullptr);
diff --git a/protocols/Gadu-Gadu/src/filetransfer.cpp b/protocols/Gadu-Gadu/src/filetransfer.cpp index b02bdfaf9d..65e3ce7a1b 100644 --- a/protocols/Gadu-Gadu/src/filetransfer.cpp +++ b/protocols/Gadu-Gadu/src/filetransfer.cpp @@ -390,7 +390,7 @@ void __cdecl GaduProto::dccmainthread(void*) local_dcc->contact = (void*)getcontact(local_dcc->peer_uin, 0, 0, nullptr);
wchar_t* filenameT = mir_utf8decodeW((char*)dcc->file_info.filename);
- PROTORECVFILET pre = { 0 };
+ PROTORECVFILE pre = { 0 };
pre.dwFlags = PRFF_UNICODE;
pre.fileCount = 1;
pre.timestamp = time(nullptr);
@@ -927,7 +927,7 @@ int GaduProto::FileDeny(MCONTACT, HANDLE hTransfer, const wchar_t *) ////////////////////////////////////////////////////////////
// Called when received an file
//
-int GaduProto::RecvFile(MCONTACT hContact, PROTORECVFILET* pre)
+int GaduProto::RecvFile(MCONTACT hContact, PROTORECVFILE* pre)
{
return Proto_RecvFile(hContact, pre);
}
diff --git a/protocols/Gadu-Gadu/src/gg_proto.h b/protocols/Gadu-Gadu/src/gg_proto.h index 361830b64a..f342797018 100644 --- a/protocols/Gadu-Gadu/src/gg_proto.h +++ b/protocols/Gadu-Gadu/src/gg_proto.h @@ -45,7 +45,7 @@ struct GaduProto : public PROTO<GaduProto> virtual HWND __cdecl SearchAdvanced(HWND owner);
virtual HWND __cdecl CreateExtendedSearchUI(HWND owner);
- virtual int __cdecl RecvFile(MCONTACT hContact, PROTORECVFILET*);
+ virtual int __cdecl RecvFile(MCONTACT hContact, PROTORECVFILE*);
virtual HANDLE __cdecl SendFile(MCONTACT hContact, const wchar_t* szDescription, wchar_t** ppszFiles);
virtual int __cdecl SendMsg(MCONTACT hContact, int flags, const char* msg);
@@ -139,7 +139,7 @@ struct GaduProto : public PROTO<GaduProto> HANDLE fileallow(MCONTACT hContact, HANDLE hTransfer, const wchar_t* szPath);
int filecancel(MCONTACT hContact, HANDLE hTransfer);
int filedeny(MCONTACT hContact, HANDLE hTransfer, const wchar_t* szReason);
- int recvfile(MCONTACT hContact, PROTORECVFILET* pre);
+ int recvfile(MCONTACT hContact, PROTORECVFILE* pre);
HANDLE sendfile(MCONTACT hContact, const wchar_t* szDescription, wchar_t** ppszFiles);
HANDLE dccfileallow(HANDLE hTransfer, const wchar_t* szPath);
diff --git a/protocols/IRCG/src/commandmonitor.cpp b/protocols/IRCG/src/commandmonitor.cpp index e07a5e6283..005d9cd96f 100644 --- a/protocols/IRCG/src/commandmonitor.cpp +++ b/protocols/IRCG/src/commandmonitor.cpp @@ -1161,7 +1161,7 @@ bool CIrcProto::IsCTCP(const CIrcMessage *pmsg) wchar_t* tszTemp = sFile.GetBuffer();
- PROTORECVFILET pre = { 0 };
+ PROTORECVFILE pre = { 0 };
pre.dwFlags = PRFF_UNICODE;
pre.timestamp = (DWORD)time(nullptr);
pre.fileCount = 1;
diff --git a/protocols/IcqOscarJ/src/icq_filerequests.cpp b/protocols/IcqOscarJ/src/icq_filerequests.cpp index 480c84f334..9af0b9203c 100644 --- a/protocols/IcqOscarJ/src/icq_filerequests.cpp +++ b/protocols/IcqOscarJ/src/icq_filerequests.cpp @@ -154,7 +154,7 @@ void CIcqProto::handleFileRequest(PBYTE buf, DWORD dwUin, DWORD dwCookie, DWORD // Send chain event
wchar_t* ptszFileName = mir_utf8decodeW(pszFileName);
- PROTORECVFILET pre = { 0 };
+ PROTORECVFILE pre = { 0 };
pre.dwFlags = PRFF_UNICODE;
pre.fileCount = 1;
pre.timestamp = time(nullptr);
diff --git a/protocols/IcqOscarJ/src/oscar_filetransfer.cpp b/protocols/IcqOscarJ/src/oscar_filetransfer.cpp index 991de1a453..f4f5222df6 100644 --- a/protocols/IcqOscarJ/src/oscar_filetransfer.cpp +++ b/protocols/IcqOscarJ/src/oscar_filetransfer.cpp @@ -476,7 +476,7 @@ void CIcqProto::handleRecvServMsgOFT(BYTE *buf, size_t wLen, DWORD dwUin, char * wchar_t* ptszFileName = mir_utf8decodeW(pszFileName);
- PROTORECVFILET pre = { 0 };
+ PROTORECVFILE pre = { 0 };
pre.dwFlags = PRFF_UNICODE;
pre.fileCount = 1;
pre.timestamp = time(nullptr);
diff --git a/protocols/JabberG/src/jabber_ft.cpp b/protocols/JabberG/src/jabber_ft.cpp index d480517332..5038c9f1ec 100644 --- a/protocols/JabberG/src/jabber_ft.cpp +++ b/protocols/JabberG/src/jabber_ft.cpp @@ -374,7 +374,7 @@ void CJabberProto::FtHandleSiRequest(HXML iqNode) ft->std.tszCurrentFile = mir_wstrdup(filename);
ft->std.totalBytes = ft->std.currentFileSize = filesize;
- PROTORECVFILET pre = { 0 };
+ PROTORECVFILE pre = { 0 };
pre.dwFlags = PRFF_UNICODE;
pre.fileCount = 1;
pre.timestamp = time(nullptr);
diff --git a/protocols/JabberG/src/jabber_iq_handlers.cpp b/protocols/JabberG/src/jabber_iq_handlers.cpp index 778e8fd22c..84b45355d8 100644 --- a/protocols/JabberG/src/jabber_iq_handlers.cpp +++ b/protocols/JabberG/src/jabber_iq_handlers.cpp @@ -375,7 +375,7 @@ BOOL CJabberProto::OnIqRequestOOB(HXML, CJabberIqInfo *pInfo) str2 = mir_wstrdup(str2);
JabberHttpUrlDecode(str2);
- PROTORECVFILET pre;
+ PROTORECVFILE pre;
pre.dwFlags = PRFF_UNICODE;
pre.timestamp = time(nullptr);
pre.descr.w = desc;
diff --git a/protocols/MRA/src/MraFilesQueue.cpp b/protocols/MRA/src/MraFilesQueue.cpp index cdf220ffc1..ee10de4897 100644 --- a/protocols/MRA/src/MraFilesQueue.cpp +++ b/protocols/MRA/src/MraFilesQueue.cpp @@ -692,7 +692,7 @@ DWORD CMraProto::MraFilesQueueAddReceive(HANDLE hQueue, DWORD dwFlags, MCONTACT }
// Send chain event
- PROTORECVFILET prf;
+ PROTORECVFILE prf;
prf.dwFlags = PRFF_UNICODE;
prf.timestamp = _time32(nullptr);
prf.descr.w = dat->pwszDescription;
diff --git a/protocols/MSN/src/msn_commands.cpp b/protocols/MSN/src/msn_commands.cpp index a354ee31ee..97bd3e71a9 100644 --- a/protocols/MSN/src/msn_commands.cpp +++ b/protocols/MSN/src/msn_commands.cpp @@ -452,7 +452,7 @@ void CMsnProto::MSN_ProcessURIObject(MCONTACT hContact, ezxml_t xmli) wchar_t tComment[40];
mir_snwprintf(tComment, TranslateT("%I64u bytes"), ft->std.currentFileSize);
- PROTORECVFILET pre = { 0 };
+ PROTORECVFILE pre = { 0 };
pre.dwFlags = PRFF_UNICODE;
pre.fileCount = 1;
pre.timestamp = time(nullptr);
diff --git a/protocols/Sametime/src/files.cpp b/protocols/Sametime/src/files.cpp index 6d4813dbca..dd85be9e64 100644 --- a/protocols/Sametime/src/files.cpp +++ b/protocols/Sametime/src/files.cpp @@ -38,7 +38,7 @@ void mwFileTransfer_offered(mwFileTransfer* ft) } else
wcsncpy_s(descriptionT, filenameT, _TRUNCATE);
- PROTORECVFILET pre = {0};
+ PROTORECVFILE pre = {0};
pre.dwFlags = PRFF_UNICODE;
pre.fileCount = 1;
pre.timestamp = time(nullptr);
diff --git a/protocols/Sametime/src/sametime_proto.cpp b/protocols/Sametime/src/sametime_proto.cpp index 3fb384cb38..9adfa781f7 100644 --- a/protocols/Sametime/src/sametime_proto.cpp +++ b/protocols/Sametime/src/sametime_proto.cpp @@ -181,7 +181,7 @@ HWND CSametimeProto::CreateExtendedSearchUI(HWND owner) }
-int CSametimeProto::RecvFile(MCONTACT hContact, PROTORECVFILET* pre)
+int CSametimeProto::RecvFile(MCONTACT hContact, PROTORECVFILE* pre)
{
debugLogW(L"CSametimeProto::RecvFile() hContact=[%x]", hContact);
diff --git a/protocols/Sametime/src/sametime_proto.h b/protocols/Sametime/src/sametime_proto.h index f822118c88..92170d575e 100644 --- a/protocols/Sametime/src/sametime_proto.h +++ b/protocols/Sametime/src/sametime_proto.h @@ -29,7 +29,7 @@ struct CSametimeProto : public PROTO<CSametimeProto> virtual HWND __cdecl SearchAdvanced(HWND owner);
virtual HWND __cdecl CreateExtendedSearchUI(HWND owner);
- virtual int __cdecl RecvFile(MCONTACT hContact, PROTORECVFILET*);
+ virtual int __cdecl RecvFile(MCONTACT hContact, PROTORECVFILE*);
virtual int __cdecl RecvMsg(MCONTACT hContact, PROTORECVEVENT*);
virtual HANDLE __cdecl SendFile(MCONTACT hContact, const wchar_t* szDescription, wchar_t** ppszFiles);
diff --git a/protocols/Tox/src/tox_transfer.cpp b/protocols/Tox/src/tox_transfer.cpp index 908c54c37a..8defc01b66 100644 --- a/protocols/Tox/src/tox_transfer.cpp +++ b/protocols/Tox/src/tox_transfer.cpp @@ -49,7 +49,7 @@ void CToxProto::OnFriendFile(Tox *tox, uint32_t friendNumber, uint32_t fileNumbe transfer->pfts.hContact = hContact;
proto->transfers.Add(transfer);
- PROTORECVFILET pre = { 0 };
+ PROTORECVFILE pre = { 0 };
pre.dwFlags = PRFF_UNICODE;
pre.fileCount = 1;
pre.timestamp = now();
diff --git a/src/core/stdfile/src/file.cpp b/src/core/stdfile/src/file.cpp index 42db8f5f35..ab5b5fa68f 100644 --- a/src/core/stdfile/src/file.cpp +++ b/src/core/stdfile/src/file.cpp @@ -355,7 +355,7 @@ INT_PTR openRecDir(WPARAM, LPARAM) static INT_PTR Proto_RecvFileT(WPARAM, LPARAM lParam)
{
CCSDATA *ccs = (CCSDATA*)lParam;
- PROTORECVFILET* pre = (PROTORECVFILET*)ccs->lParam;
+ PROTORECVFILE* pre = (PROTORECVFILE*)ccs->lParam;
if (pre->fileCount == 0)
return 0;
diff --git a/src/mir_app/src/mir_app.def b/src/mir_app/src/mir_app.def index e07917fdb9..3fde886325 100644 --- a/src/mir_app/src/mir_app.def +++ b/src/mir_app/src/mir_app.def @@ -56,7 +56,7 @@ Skin_GetIconName @24 ?ProtoBroadcastAck@PROTO_INTERFACE@@QAEHIHHPAXJ@Z @56 NONAME
?RecvAwayMsg@PROTO_INTERFACE@@UAAHIHPAUPROTORECVEVENT@@@Z @57 NONAME
?RecvContacts@PROTO_INTERFACE@@UAAHIPAUPROTORECVEVENT@@@Z @58 NONAME
-?RecvFile@PROTO_INTERFACE@@UAAHIPAUPROTORECVFILET@@@Z @59 NONAME
+?RecvFile@PROTO_INTERFACE@@UAAHIPAUPROTORECVFILE@@@Z @59 NONAME
?RecvMsg@PROTO_INTERFACE@@UAAHIPAUPROTORECVEVENT@@@Z @60 NONAME
?RecvUrl@PROTO_INTERFACE@@UAAHIPAUPROTORECVEVENT@@@Z @61 NONAME
?SearchAdvanced@PROTO_INTERFACE@@UAAPAUHWND__@@PAU2@@Z @62 NONAME
@@ -486,3 +486,4 @@ Contact_AddBySearch @499 ?setAllContactStatuses@PROTO_INTERFACE@@QAEXH_N@Z @500 NONAME
??0PROTO_INTERFACE@@QAE@PBDPB_W@Z @501 NONAME
??1PROTO_INTERFACE@@QAE@XZ @502 NONAME
+Proto_AuthRecv @503
diff --git a/src/mir_app/src/mir_app64.def b/src/mir_app/src/mir_app64.def index 528431bf8c..31958bb466 100644 --- a/src/mir_app/src/mir_app64.def +++ b/src/mir_app/src/mir_app64.def @@ -56,7 +56,7 @@ Skin_GetIconName @24 ?ProtoBroadcastAck@PROTO_INTERFACE@@QEAA_JIHHPEAX_J@Z @56 NONAME
?RecvAwayMsg@PROTO_INTERFACE@@UEAAHIHPEAUPROTORECVEVENT@@@Z @57 NONAME
?RecvContacts@PROTO_INTERFACE@@UEAAHIPEAUPROTORECVEVENT@@@Z @58 NONAME
-?RecvFile@PROTO_INTERFACE@@UEAAHIPEAUPROTORECVFILET@@@Z @59 NONAME
+?RecvFile@PROTO_INTERFACE@@UEAAHIPEAUPROTORECVFILE@@@Z @59 NONAME
?RecvMsg@PROTO_INTERFACE@@UEAAHIPEAUPROTORECVEVENT@@@Z @60 NONAME
?RecvUrl@PROTO_INTERFACE@@UEAAHIPEAUPROTORECVEVENT@@@Z @61 NONAME
?SearchAdvanced@PROTO_INTERFACE@@UEAAPEAUHWND__@@PEAU2@@Z @62 NONAME
@@ -486,3 +486,4 @@ Contact_AddBySearch @499 ?setAllContactStatuses@PROTO_INTERFACE@@QEAAXH_N@Z @500 NONAME
??0PROTO_INTERFACE@@QEAA@PEBDPEB_W@Z @501 NONAME
??1PROTO_INTERFACE@@QEAA@XZ @502 NONAME
+Proto_AuthRecv @503
diff --git a/src/mir_app/src/proto_internal.cpp b/src/mir_app/src/proto_internal.cpp index 3d95b50fd0..437f9cd0a4 100644 --- a/src/mir_app/src/proto_internal.cpp +++ b/src/mir_app/src/proto_internal.cpp @@ -191,7 +191,7 @@ struct DEFAULT_PROTO_INTERFACE : public PROTO_INTERFACE return (int)ProtoCallService(m_szModuleName, PSR_CONTACTS, 0, (LPARAM)&ccs);
}
- virtual int __cdecl RecvFile(MCONTACT hContact, PROTORECVFILET* evt) override
+ virtual int __cdecl RecvFile(MCONTACT hContact, PROTORECVFILE* evt) override
{
CCSDATA ccs = { hContact, PSR_FILE, 0, (LPARAM)evt };
return ProtoCallService(m_szModuleName, PSR_FILE, 0, (LPARAM)&ccs);
diff --git a/src/mir_app/src/proto_utils.cpp b/src/mir_app/src/proto_utils.cpp index 5561ef87f2..f667522e06 100644 --- a/src/mir_app/src/proto_utils.cpp +++ b/src/mir_app/src/proto_utils.cpp @@ -388,7 +388,7 @@ int PROTO_INTERFACE::RecvContacts(MCONTACT, PROTORECVEVENT*) return 1; // error
}
-int PROTO_INTERFACE::RecvFile(MCONTACT hContact, PROTORECVFILET *evt)
+int PROTO_INTERFACE::RecvFile(MCONTACT hContact, PROTORECVFILE *evt)
{
return ::Proto_RecvFile(hContact, evt); // default file receiver
}
diff --git a/src/mir_app/src/protocols.cpp b/src/mir_app/src/protocols.cpp index 132d8bd95a..2e9d6652b8 100644 --- a/src/mir_app/src/protocols.cpp +++ b/src/mir_app/src/protocols.cpp @@ -182,18 +182,19 @@ static INT_PTR Proto_RecvMessage(WPARAM, LPARAM lParam) return (INT_PTR)db_event_add(ccs->hContact, &dbei);
}
-static INT_PTR Proto_AuthRecv(WPARAM wParam, LPARAM lParam)
+MIR_APP_DLL(MEVENT) Proto_AuthRecv(const char *szProtoName, PROTORECVEVENT *pcre)
{
- PROTORECVEVENT* pre = (PROTORECVEVENT*)lParam;
+ if (szProtoName == nullptr || pcre == nullptr)
+ return 0;
DBEVENTINFO dbei = {};
- dbei.szModule = (char*)wParam;
- dbei.timestamp = pre->timestamp;
- dbei.flags = DBEF_UTF | pre->flags & (PREF_CREATEREAD ? DBEF_READ : 0);
+ dbei.szModule = (char*)szProtoName;
+ dbei.timestamp = pcre->timestamp;
+ dbei.flags = DBEF_UTF | pcre->flags & (PREF_CREATEREAD ? DBEF_READ : 0);
dbei.eventType = EVENTTYPE_AUTHREQUEST;
- dbei.cbBlob = pre->lParam;
- dbei.pBlob = (PBYTE)pre->szMessage;
- return (INT_PTR)db_event_add(0, &dbei);
+ dbei.cbBlob = pcre->lParam;
+ dbei.pBlob = (PBYTE)pcre->szMessage;
+ return db_event_add(0, &dbei);
}
/////////////////////////////////////////////////////////////////////////////////////////
@@ -404,7 +405,7 @@ INT_PTR CallProtoServiceInt(MCONTACT hContact, const char *szModule, const char case 18: return (INT_PTR)ppi->SearchAdvanced((HWND)lParam);
case 19: return (INT_PTR)ppi->CreateExtendedSearchUI((HWND)lParam);
case 20: return (INT_PTR)ppi->RecvContacts(hContact, (PROTORECVEVENT*)lParam);
- case 21: return (INT_PTR)ppi->RecvFile(hContact, (PROTORECVFILET*)lParam);
+ case 21: return (INT_PTR)ppi->RecvFile(hContact, (PROTORECVFILE*)lParam);
case 22: return (INT_PTR)ppi->RecvMsg(hContact, (PROTORECVEVENT*)lParam);
case 23: return (INT_PTR)ppi->RecvUrl(hContact, (PROTORECVEVENT*)lParam);
case 24: return (INT_PTR)ppi->SendContacts(hContact, LOWORD(wParam), HIWORD(wParam), (MCONTACT*)lParam);
@@ -460,7 +461,6 @@ int LoadProtocolsModule(void) CreateServiceFunction(MS_PROTO_CONTACTISTYPING, Proto_ContactIsTyping);
CreateServiceFunction(MS_PROTO_RECVMSG, Proto_RecvMessage);
- CreateServiceFunction(MS_PROTO_AUTHRECV, Proto_AuthRecv);
CreateServiceFunction(MS_PROTO_CREATEACCOUNT, srvProto_CreateAccount);
|