#ifndef __NMFUNCTIONOBJECT_H_2D622A4E_137B_4150_95A1_A97D3E9CC46C__ #define __NMFUNCTIONOBJECT_H_2D622A4E_137B_4150_95A1_A97D3E9CC46C__ ///////////////////////////////////////////////////////////////// // DO NOT CHANGE AN ORDER OF THE CODE BELOW ///////////////////////////////////////////////////////////////// enum NMFUNCCODE { // control kNMFuncCode_ControlStart_ = 0x1000, kNMFuncCode_Init, kNMFuncCode_RegisterCallback, kNMFuncCode_ResetCallback, kNMFuncCode_AttachToNMCOServer, kNMFuncCode_DetachFromNMCOServer, kNMFuncCode_BringForwardStandAloneMsg, kNMFuncCode_StartStandAloneMsg, kNMFuncCode_InitClientObject, // session control kNMFuncCode_SessionControlStart_ = 0x1100, kNMFuncCode_Login, // DEPRECATED kNMFuncCode_Logout, // DEPRECATED kNMFuncCode_LoginVirtual, kNMFuncCode_LogoutVirtual, kNMFuncCode_GetMyVirtualUserList, kNMFuncCode_ChangeMyPosition, kNMFuncCode_SendRefreshMessage, kNMFuncCode_ChangeMyLevel, kNMFuncCode_RemoveMyVirtualUser, kNMFuncCode_LoginPassport, // NOT IN KOREA kNMFuncCode_RetryLogin, // REMOVED kNMFuncCode_LoginNexonPassport, // INTERNAL kNMFuncCode_LoginMessenger, kNMFuncCode_LogoutMessenger, kNMFuncCode_LoginAuth, kNMFuncCode_LogoutAuth, kNMFuncCode_Initialize, kNMFuncCode_LoginAuthMatrix, kNMFuncCode_GetGameToken, // user info kNMFuncCode_UserInfoStart_ = 0x2000, kNMFuncCode_GetMyInfo, kNMFuncCode_GetUserDataList, kNMFuncCode_ChangeMyInfo, kNMFuncCode_GetConfig, kNMFuncCode_ChangeConfig, kNMFuncCode_GetLocalConfig, kNMFuncCode_ChangeLocalConfig, kNMFuncCode_GetCount, kNMFuncCode_SetCount, kNMFuncCode_ChangeNickname, kNMFuncCode_ChangeMetaData, // Çà»ç µî °¢Á¾ À̺¥Æ®³ª ´º½º kNMFuncCode_RequestNews, kNMFuncCode_CheckNews, // client info kNMFuncCode_ClientInfoStart_ = 0x2100, kNMFuncCode_GetDomain, kNMFuncCode_GetVersion, kNMFuncCode_SetStatInfo, kNMFuncCode_SetLocale, kNMFuncCode_GetNexonPassport, kNMFuncCode_GetMatrixInfo, kNMFuncCode_GetNxHWID, // P2P kNMFuncCode_P2PStart_ = 0x3000, kNMFuncCode_P2PLogin, kNMFuncCode_P2PSendData, kNMFuncCode_P2PLogout, kNMFuncCode_P2PMultiSendData, // friend kNMFuncCode_FriendStart_ = 0x4000, kNMFuncCode_GetFriendList, kNMFuncCode_GetFriendInfo, kNMFuncCode_RequestNewFriend, kNMFuncCode_ConfirmNewFriend, kNMFuncCode_BlockFriend, kNMFuncCode_ChangeFriendMemo, kNMFuncCode_AddFriendToCategory, kNMFuncCode_DeleteFriendFromCategory, kNMFuncCode_MoveFriendCategory, kNMFuncCode_ChangeFriendMemoEx, // category kNMFuncCode_CategoryStart_ = 0x4100, kNMFuncCode_AddCategory, kNMFuncCode_DeleteCategory, kNMFuncCode_ChangeCategoryName, kNMFuncCode_ChangeCategoryProperty, kNMFuncCode_ChangeCategoryAllowType, // black-list (obsolete) kNMFuncCode_BlackListStart_ = 0x5000, kNMFuncCode_GetBlackList, kNMFuncCode_AddToBlackList, kNMFuncCode_DeleteFromBlackList, // reject-list (obsolete) kNMFuncCode_RejectListStart_ = 0x5100, kNMFuncCode_GetRejectList, kNMFuncCode_AddToRejectList, kNMFuncCode_DeleteFromRejectList, // new rejected user list kNMFuncCode_RejectedUserListStart_ = 0x5200, kNMFuncCode_GetRejectedUserList, kNMFuncCode_AppendRejectedUser, kNMFuncCode_RemoveRejectedUser, // note kNMFuncCode_NoteStart_ = 0x6000, kNMFuncCode_GetNoteBox, kNMFuncCode_SendNoteMsg, kNMFuncCode_ProcessNote, kNMFuncCode_SendNoteInfo, kNMFuncCode_GetNoteBox2, kNMFuncCode_SendAccuseNoteMsg, // guild kNMFuncCode_GuildStart_ = 0x7000, kNMFuncCode_GetMyGuildList, // REMOVED // kNMFuncCode_MonitorGuildOnlineInfo, // REMOVED // kNMFuncCode_GetMyGuildListEx, kNMFuncCode_MonitorGuildOnlineInfoEx, kNMFuncCode_SendGuildChatMessage, kNMFuncCode_GetGuildList, // OBSOLETE // // client util kNMFuncCode_ClientUtilStart_ = 0x8000, kNMFuncCode_ExecutePatcher, kNMFuncCode_ExecuteLauncher, kNMFuncCode_ExecuteCommon, kNMFuncCode_GetUrl, // REMOVED // kNMFuncCode_GetPath, kNMFuncCode_SetSessionValue, kNMFuncCode_GetSessionValue, kNMFuncCode_GetGameList, kNMFuncCode_GetUrlEx, kNMFuncCode_DownloadFile, kNMFuncCode_UploadFile, kNMFuncCode_GetSupportGameList, kNMFuncCode_GetGameServerList, kNMFuncCode_GetGameFullName, kNMFuncCode_GetGameShortName, kNMFuncCode_GetGameFriendTitle, kNMFuncCode_GetGameServerName, kNMFuncCode_GetConnConfig, kNMFuncCode_SetConnConfig, kNMFuncCode_DownloadGameList, // REMOVED // kNMFuncCode_ExecuteNGMPatcher, kNMFuncCode_ExecuteNGMLauncher, kNMFuncCode_IsNGMInstalled, kNMFuncCode_RestrictedWords, kNMFuncCode_MinimizeAll, kNMFuncCode_LogReportSync, kNMFuncCode_IsGuestIDPassport, kNMFuncCode_SetServerInfo, kNMFuncCode_DownloadGuildMarkFile, kNMFuncCode_GetServerInfo, kNMFuncCode_WriteToWiselog, kNMFuncCode_ExecuteNGMInstaller, kNMFuncCode_OpenGameSummary, kNMFuncCode_ClientUtilEnd_, // server util kNMFuncCode_ServerUtilStart_ = 0x9000, kNMFuncCode_GetUserInfo, kNMFuncCode_FindUser, kNMFuncCode_GetFindUserResult, kNMFuncCode_SendNoteExMsg, kNMFuncCode_SendReportMsg, kNMFuncCode_CustomNotify, // create session kNMFuncCode_CreateSessionStart_ = 0xA000, kNMFuncCode_RequestChatSession, kNMFuncCode_RequestMultiChatSession, kNMFuncCode_RequestFileUploadSession, kNMFuncCode_RequestWBSession, kNMFuncCode_ReplySessionRequest, kNMFuncCode_CreateChatRoom, // REMOVED // kNMFuncCode_JoinToChatRoom, // REMOVED // kNMFuncCode_RequestSessionToOther, kNMFuncCode_CreateChatRoomEx, kNMFuncCode_JoinToChatRoomEx, kNMFuncCode_RequestChatSessionEx, kNMFuncCode_RequestMultiChatSessionEx, kNMFuncCode_RequestFileUploadSessionEx, kNMFuncCode_RequestWBSessionEx, kNMFuncCode_JoinToDefaultGuildChatRoom, // REMOVED // kNMFuncCode_CreateChannel, kNMFuncCode_JoinChannel, // chat room kNMFuncCode_ChatRoomStart_ = 0xB000, kNMFuncCode_CRRegisterCallback, kNMFuncCode_CRClose, kNMFuncCode_CRGetRoomInfo, // REMOVED // kNMFuncCode_CRChangeRoomInfo, kNMFuncCode_CRChangeMyInfo, kNMFuncCode_CRGetMemberList, kNMFuncCode_CRInviteUser, kNMFuncCode_CRBanUser, kNMFuncCode_CRSendChatMessage, kNMFuncCode_CRGetMemberInfo, kNMFuncCode_CRGetRoomInfoEx, // general session kNMFuncCode_GenralSessionStart_ = 0xC000, kNMFuncCode_GSRegisterCallback, kNMFuncCode_GSWantClose, kNMFuncCode_GSGetSessionInfo, kNMFuncCode_GSSetServingProcessID, kNMFuncCode_GSGetMemberList, kNMFuncCode_GSInviteUser, kNMFuncCode_GSGetInviteCandidateList, kNMFuncCode_GSInviteUserEx, // chat session kNMFuncCode_ChatSessionStart_ = 0xC100, kNMFuncCode_CSSendChatMessage, // file upload session kNMFuncCode_FileUploadSessionStart_ = 0xC200, kNMFuncCode_FUDSGetFileEvent, kNMFuncCode_FUSSendFile, kNMFuncCode_FUSControl, // file download session kNMFuncCode_FileDownloadSessionStart_ = 0xC300, kNMFuncCode_FDSControl, kNMFuncCode_FDSGetDownloadDir, kNMFuncCode_FDSSetDownloadDir, // white-board session kNMFuncCode_WhiteboardSessionStart_ = 0xC400, kNMFuncCode_WSSendWBMessage, kNMFuncCode_WSGetAssocSerialKey, // channel kNMFuncCode_ChannelStart_ = 0xD000, kNMFuncCode_CHClose, kNMFuncCode_CHGetChannelInfo, kNMFuncCode_CHChangeChannelInfo, kNMFuncCode_CHGetMemberInfoList, kNMFuncCode_CHChangeMyInfo, kNMFuncCode_CHInviteUser, kNMFuncCode_CHBanUser, kNMFuncCode_CHSendChannelMessage, // for event kNMFuncCode_EventStart_ = 0xE000, kNMFuncCode_KartComeback, // REMOVED // // for character kNMFuncCode_CharacterLogin = 0xF000, kNMFuncCode_CharacterLogout, kNMFuncCode_CharacterRemove, kNMFuncCode_CharacterChangeName, kNMFuncCode_CharacterLogin64, kNMFuncCode_CharacterLogout64, kNMFuncCode_CharacterRemove64, kNMFuncCode_CharacterChangeName64, kNMFuncCode_CharacterSync, kNMFuncCode_CharacterSync64, // for game log kNMFuncCode_GameLogInitialize = 0xF010, kNMFuncCode_GameLogFinalize, kNMFuncCode_GameLogWriteStageLog, kNMFuncCode_GameLogWriteErrorLog, kNMFuncCode_GameLogGetSessionID, // for play feed kNMFuncCode_PlayFeedWritePlayLog = 0xF0A0, kNMFuncCode_PlayFeedPublishPlayFeed, }; //========================================= // base class //========================================= class CNMFunc : public CNMSerializable { private: _UInt32_ m_uCode; BOOL m_bCalling; BOOL m_bHandled; BOOL m_bPassThrough; BOOL m_bUseEncrypt; _UInt32_ m_uProcID; public: _UInt32_ GetCode( void ) { return this->m_uCode; } void SetCalling( void ) { this->m_bCalling = TRUE; } BOOL IsCalling( void ) { return this->m_bCalling; } void SetReturn( void ) { this->m_bCalling = FALSE; } BOOL IsReturn( void ) { return !this->m_bCalling; } void SetHandled( BOOL bSet = TRUE ) { this->m_bHandled = bSet; } BOOL IsHandled( void ) { return this->m_bHandled; } void SetPassThrough( BOOL bSet = TRUE ) { this->m_bPassThrough = bSet; } BOOL IsPassThrough( void ) { return this->m_bPassThrough; } BOOL UseEncrypt( void ) { return this->m_bUseEncrypt; } void SetProcID( _UInt32_ uProcID ) { this->m_uProcID = uProcID; } _UInt32_ GetProcID( void ) { return this->m_uProcID; } virtual LPCTSTR GetName( void ) { return _T( "CNMFunc" ); } public: // default calling data _UInt32_ uSerialKey; // default return data BOOL bSuccess; public: CNMFunc( _UInt32_ uCode, _UInt8_ uObjectVersion, _UInt32_ uSerialKey = 0, BOOL bUseEncrypt = FALSE ); DECLARE_SERIALIZABLE }; #define DECLARE_NMFUNC( funcName ) \ enum { kCode = kNMFuncCode_##funcName }; \ virtual LPCTSTR GetName( void ) { return _T( "CNM" ) _T( #funcName ) _T( "Func" ); }; //========================================= // classes //========================================= class CNMInitFunc : public CNMFunc { public: DECLARE_NMFUNC( Init ) // call data _UInt32_ uGameCode; TCHAR szDomain[ DOMAIN_SIZE ]; _UInt32_ uSupportFlag; // return data // NONE public: CNMInitFunc( void ); CNMInitFunc( _UInt32_ uGameCode, LPCTSTR szDomain, _UInt32_ uSupportFlag ); DECLARE_SERIALIZABLE }; class CNMRegisterCallbackFunc : public CNMFunc { public: DECLARE_NMFUNC( RegisterCallback ) // call data HWND hWnd; _UInt32_ uMessage; // return data // NONE public: CNMRegisterCallbackFunc( void ); CNMRegisterCallbackFunc( HWND hWnd, _UInt32_ uMessage ); DECLARE_SERIALIZABLE }; class CNMResetCallbackFunc : public CNMFunc { public: DECLARE_NMFUNC( ResetCallback ) // call data HWND hWnd; // return data // NONE public: CNMResetCallbackFunc( void ); CNMResetCallbackFunc( HWND hWnd ); DECLARE_SERIALIZABLE }; class CNMAttachToNMCOServerFunc : public CNMFunc { public: DECLARE_NMFUNC( AttachToNMCOServer ) // call data _UInt32_ uProcessId; _UInt32_ uGameCode; _UInt32_ uSupportFlag; NMLOCALEID uLocaleID; INT32 nRegionCode; // return data // NONE public: CNMAttachToNMCOServerFunc( void ); CNMAttachToNMCOServerFunc( _UInt32_ uProcessId, _UInt32_ uGameCode, _UInt32_ uSupportFlag, NMLOCALEID uLocaleID, INT32 nRegionCode ); DECLARE_SERIALIZABLE }; class CNMDetachFromNMCOServerFunc : public CNMFunc { public: DECLARE_NMFUNC( DetachFromNMCOServer ) // call data _UInt32_ uProcessId; // return data // NONE public: CNMDetachFromNMCOServerFunc( void ); CNMDetachFromNMCOServerFunc( _UInt32_ uProcessId ); DECLARE_SERIALIZABLE }; class CNMBringForwardStandAloneMsgFunc : public CNMFunc { public: DECLARE_NMFUNC( BringForwardStandAloneMsg ) // call data TCHAR szDomain[ DOMAIN_SIZE ]; // return data // NONE public: CNMBringForwardStandAloneMsgFunc( void ); CNMBringForwardStandAloneMsgFunc( LPCTSTR szDomain ); DECLARE_SERIALIZABLE }; class CNMStartStandAloneMsgFunc : public CNMFunc { public: DECLARE_NMFUNC( StartStandAloneMsg ) // call data TCHAR szDomain[ DOMAIN_SIZE ]; // return data // NONE public: CNMStartStandAloneMsgFunc( void ); CNMStartStandAloneMsgFunc( LPCTSTR szDomain ); DECLARE_SERIALIZABLE }; class CNMInitClientObjectFunc : public CNMFunc { public: DECLARE_NMFUNC( InitClientObject ) // call data NMGameCode uGameCode; TCHAR szPassport[ PASSPORT_SIZE ]; UINT32 uSupportFlag; BOOL bAutoMessengerLogin; // return data // NONE public: CNMInitClientObjectFunc(); CNMInitClientObjectFunc(NMGameCode uGameCode, LPCTSTR pszPassport, UINT32 uSupportFlag, BOOL bAutoMessengerLogin); DECLARE_SERIALIZABLE }; class CNMGetConnConfigFunc : public CNMFunc { public: DECLARE_NMFUNC( GetConnConfig ) // call data // NONE // return data CNMConnConfig m_ConnConfig; public: CNMGetConnConfigFunc( void ); DECLARE_SERIALIZABLE }; class CNMSetConnConfigFunc : public CNMFunc { public: DECLARE_NMFUNC( SetConnConfig ) // call data CNMConnConfig m_ConnConfig; // return data // NONE public: CNMSetConnConfigFunc( void ); CNMSetConnConfigFunc( const CNMConnConfig & ConnConfig ); DECLARE_SERIALIZABLE }; class CNMLoginFunc : public CNMFunc { public: DECLARE_NMFUNC( Login ) // call data TCHAR szLoginId[ LOGINID_SIZE ]; TCHAR szPassword[ LOGINID_SIZE ]; _UInt32_ uGameCode; _UInt64_ uVersion; NMGameCode uLoginGameCode; // return data // NONE public: CNMLoginFunc( void ); CNMLoginFunc( LPCTSTR szLoginId, LPCTSTR szPassword, _UInt64_ uVersion, NMGameCode uLoginGameCode = kGameCode_nexoncom ); DECLARE_SERIALIZABLE }; class CNMLogoutFunc : public CNMFunc { public: DECLARE_NMFUNC( Logout ) // call data BOOL bApplyToAllSession; // return data // NONE public: CNMLogoutFunc( void ); CNMLogoutFunc( BOOL bApplyToAllSession ); DECLARE_SERIALIZABLE }; class CNMLoginVirtualFunc : public CNMFunc { public: DECLARE_NMFUNC( LoginVirtual ) // call data TCHAR szUserId[ NICKNAME_SIZE ]; NMVirtualKey keyUser; TCHAR szPosition[ POSITION_SIZE ]; // return data // NONE public: CNMLoginVirtualFunc( void ); CNMLoginVirtualFunc( LPCTSTR szUserId, _UInt32_ uVirtualIdCode, LPCTSTR szPosition ); DECLARE_SERIALIZABLE }; class CNMLogoutVirtualFunc : public CNMFunc { public: DECLARE_NMFUNC( LogoutVirtual ) // call data NMVirtualKey keyUser; // return data // NONE public: CNMLogoutVirtualFunc( void ); CNMLogoutVirtualFunc( NMVirtualKey keyUser ); DECLARE_SERIALIZABLE }; class CNMGetMyVirtualUserListFunc : public CNMFunc { public: DECLARE_NMFUNC( GetMyVirtualUserList ) // call data _UInt32_ uGameCode; // return data NMVirtualUserList aVirtualUser; public: CNMGetMyVirtualUserListFunc( void ); CNMGetMyVirtualUserListFunc( _UInt32_ uGameCode ); DECLARE_SERIALIZABLE }; class CNMChangeMyPositionFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeMyPosition ) // call data NMVirtualKey keyUser; TCHAR szPosition[ POSITION_SIZE ]; // return data // NONE public: CNMChangeMyPositionFunc( void ); CNMChangeMyPositionFunc( LPCTSTR szPosition ); CNMChangeMyPositionFunc( NMVirtualKey keyUser, LPCTSTR szPosition ); DECLARE_SERIALIZABLE }; class CNMSendRefreshMessageFunc : public CNMFunc { public: DECLARE_NMFUNC( SendRefreshMessage ) // call data NMREFRESHTYPE uRefreshType; // return data // NONE public: CNMSendRefreshMessageFunc( void ); CNMSendRefreshMessageFunc( NMREFRESHTYPE uRefreshType ); DECLARE_SERIALIZABLE }; class CNMGetMyInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( GetMyInfo ) // call data // NONE // return data CNMRealUserInfo ruiUserInfo; _UInt64_ uSessionKeyHigh; _UInt64_ uSessionKeyLow; _UInt32_ uUnreadNoteCount; _UInt32_ uUnreadMailCount; TCHAR szPassport[ PASSPORT_SIZE ]; public: CNMGetMyInfoFunc( void ); DECLARE_SERIALIZABLE }; class CNMGetUserDataListFunc : public CNMFunc { public: DECLARE_NMFUNC( GetUserDataList ) enum { kMaxBufferSize = 512 * 1024, }; // call data _UInt32_ uStartPtr; // return data _UInt32_ uTotalSize; _UInt32_ uCurrentSize; BYTE aBuffer[ kMaxBufferSize ]; public: CNMGetUserDataListFunc( void ); DECLARE_SERIALIZABLE }; class CNMChangeMyInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeMyInfo ) enum { kFlag_Status = ( 0x1 << 0 ), kFlag_Word = ( 0x1 << 1 ), kFlag_NickName = ( 0x1 << 2 ), kFlag_MaskInfo = ( 0x1 << 4 ), }; // call data UINT32 uFlag; NMUSERSTATUS uStatus; TCHAR szWord[ TODAYWORD_SIZE ]; TCHAR szNickName[ NICKNAME_SIZE ]; UINT32 uMaskInfo; NMGameCode uGameCode; // return data // NONE public: CNMChangeMyInfoFunc( void ); CNMChangeMyInfoFunc( NMUSERSTATUS uStatus, LPCTSTR szWord, LPCTSTR szNickName, UINT32 uMaskInfo, NMGameCode uGameCode ); DECLARE_SERIALIZABLE }; class CNMGetConfigFunc : public CNMFunc { public: DECLARE_NMFUNC( GetConfig ) enum { kFlag_AllowChatType = ( 0x1 << 0 ), kFlag_AllowNoteType = ( 0x1 << 1 ), kFlag_AllowGameInviteType = ( 0x1 << 2 ), kFlag_AllowRequestFriendType = ( 0x1 << 3 ), kFlag_MyGame = ( 0x1 << 4 ), kFlag_All = 0xFFFFFFFF, }; // common data _UInt32_ uFlag; // call data // NONE // return data NMALLOWTYPE uAllowChatType; NMALLOWTYPE uAllowNoteType; NMALLOWTYPE uAllowGameInviteType; NMALLOWTYPE uAllowRequestFriendType; CNMMyGameInfo mgiGameInfo; public: CNMGetConfigFunc( void ); CNMGetConfigFunc( _UInt32_ uFlag ); DECLARE_SERIALIZABLE }; class CNMChangeConfigFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeConfig ) enum { kFlag_AllowChatType = ( 0x1 << 0 ), kFlag_AllowNoteType = ( 0x1 << 1 ), kFlag_AllowGameInviteType = ( 0x1 << 2 ), kFlag_AllowRequestFriendType = ( 0x1 << 3 ), kFlag_MyGame = ( 0x1 << 4 ), kFlag_All = 0xFFFFFFFF, }; // call data _UInt32_ uFlag; NMALLOWTYPE uAllowChatType; NMALLOWTYPE uAllowNoteType; NMALLOWTYPE uAllowGameInviteType; NMALLOWTYPE uAllowRequestFriendType; CNMMyGameInfo mgiGameInfo; // return data // NONE public: CNMChangeConfigFunc( void ); CNMChangeConfigFunc( NMALLOWTYPE uAllowChatType, NMALLOWTYPE uAllowNoteType, NMALLOWTYPE uAllowGameInviteType, NMALLOWTYPE uAllowRequestFriendType, CNMMyGameInfo* pmgiGameInfo ); DECLARE_SERIALIZABLE }; class CNMGetLocalConfigFunc : public CNMFunc { public: DECLARE_NMFUNC( GetLocalConfig ) // call data NMLOCALCONFIGTYPE uConfigType; // return data TCHAR szValueOut[ 1024 ]; public: CNMGetLocalConfigFunc( void ); CNMGetLocalConfigFunc( NMLOCALCONFIGTYPE uConfigType ); DECLARE_SERIALIZABLE }; class CNMChangeLocalConfigFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeLocalConfig ) // call data NMLOCALCONFIGTYPE uConfigType; TCHAR szValue[ 1024 ]; // return data // NONE public: CNMChangeLocalConfigFunc( void ); CNMChangeLocalConfigFunc( NMLOCALCONFIGTYPE uConfigType, LPCTSTR szValue ); DECLARE_SERIALIZABLE }; class CNMGetCountFunc : public CNMFunc { public: DECLARE_NMFUNC( GetCount ) enum { kType_NULL = 0, kType_UnreadMail = 1, kType_UnreadNote = 2, }; // call data _UInt32_ uType; // return data _UInt32_ uCount; public: CNMGetCountFunc( void ); CNMGetCountFunc( _UInt32_ uType ); DECLARE_SERIALIZABLE }; class CNMSetCountFunc : public CNMFunc { public: DECLARE_NMFUNC( SetCount ) enum { kType_NULL = 0, kType_UnreadMail = 1, }; // call data _UInt32_ uCount; _UInt32_ uType; // return data // NONE public: CNMSetCountFunc( void ); CNMSetCountFunc( _UInt32_ uType, _UInt32_ uCount ); DECLARE_SERIALIZABLE }; class CNMChangeNicknameFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeNickname ) // call data NMVirtualKey keyCharacter; TCHAR szNickname[ NICKNAME_SIZE ]; // return data // nothing... public: CNMChangeNicknameFunc( void ); CNMChangeNicknameFunc( NMVirtualKey keyCharacter, LPCTSTR szNickname ); DECLARE_SERIALIZABLE }; class CNMChangeMetaDataFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeMetaData ) // call data NMVirtualKey keyCharacter; TCHAR szMetaData[ METADATA_SIZE ]; // return data // nothing... public: CNMChangeMetaDataFunc( void ); CNMChangeMetaDataFunc( NMVirtualKey keyCharacter, LPCTSTR szMetaData ); DECLARE_SERIALIZABLE }; class CNMRequestNewsFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestNews ) public: CNMRequestNewsFunc( void ); DECLARE_SERIALIZABLE }; class CNMCheckNewsFunc : public CNMFunc { public: DECLARE_NMFUNC( CheckNews ) NMGameCode uEventGameCode; // Âü°¡ÇÒ °ÔÀÓ ÄÚµå, ¿¹¸¦ µé¾î Ç÷¯±× À̺¥Æ®¶ó¸é kGameCode_plug NMVirtualKey keyVirtual; // Âü°¡Çϴ ij¸¯ÅÍ. ¸¸¾à ij¸¯Å͸¦ ÁöÁ¤ÇÒ ¼ö ¾ø´Â »óȲÀ̶ó¸é °ÔÀÓ ÄÚµå ºÎºÐ¸¸ À¯È¿ÇÏ°Ô µÈ´Ù public: CNMCheckNewsFunc( void ); CNMCheckNewsFunc( NMGameCode uEventGameCode, NMVirtualKey keyVirtual = keyVirtualAll ); DECLARE_SERIALIZABLE }; class CNMGetDomainFunc : public CNMFunc { public: DECLARE_NMFUNC( GetDomain ) // call data // NONE // return data TCHAR szDomain[ DOMAIN_SIZE ]; public: CNMGetDomainFunc( void ); DECLARE_SERIALIZABLE }; class CNMGetVersionFunc : public CNMFunc { public: DECLARE_NMFUNC( GetVersion ) enum { kCore = 0, kDll = 1, }; // call data _UInt32_ uModuleIndex; // return data _UInt64_ uVersion; public: CNMGetVersionFunc( void ); CNMGetVersionFunc( _UInt32_ uModuleIndex ); DECLARE_SERIALIZABLE }; class CNMSetStatInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( SetStatInfo ) // // NOTE: ÀÌ Å¸ÀÔÀº CStatisticsPacket::NMSTATTYPE ÀÌ´º¸Ó·¹ÀÌÅÍ¿Í °ªÀ» ¸ÂÃç¾ß ÇÕ´Ï´Ù // enum NMSTATTYPE { // Messenger Section kStatType_NULL = 0, kStatType_Login, // ¸Þ½ÅÀú - ¸Þ½ÅÀú ·Î±×ÀÎ(¼­¹ö ÆÇÁ¤) kStatType_Logout, // ¸Þ½ÅÀú - ¸Þ½ÅÀú ·Î±×¾Æ¿ô(¼­¹ö ÆÇÁ¤) kStatType_Launch, // ¸Þ½ÅÀú - °ÔÀÓ ½ÃÀÛ kStatType_Note, // ¸Þ½ÅÀú - ÂÊÁö º¸³»±â kStatType_Chat, // ¸Þ½ÅÀú - äÆÃ º¸³»±â(¶óÀκ°) kStatType_GuildChat, // ¸Þ½ÅÀú - ±æµåê º¸³»±â(¶óÀκ°) kStatType_Soap, // <»ç¿ë¾ÈÇÔ> kStatType_OSVersion, // ¸Þ½ÅÀú - OS ¹öÀü kStatType_ULogin, // <»ç¿ë¾ÈÇÔ> kStatType_UUpdateSession, // <»ç¿ë¾ÈÇÔ> kStatType_ULogout, // <»ç¿ë¾ÈÇÔ> // Plug - Click, Key // À̺¥Æ® ¹ß»ý ½Ã ÃøÁ¤Çϸç Ä«¿îÆ® ¹× ¼ø¼­¸¦ ¼öÁý kStatType_HomeClick = 20, // ¸ÞÀΠâ - Ȩ ¹öư Ŭ¸¯ kStatType_MyInfoClick, // ¸ÞÀΠâ - ³» Á¤º¸ ¹öư Ŭ¸¯ kStatType_NoteClick, // ¸ÞÀΠâ - ÂÊÁö ¹öư Ŭ¸¯ kStatType_InfoPanelLClick, // ¸ÞÀΠâ - Àü±¤ÆÇ ÁÂŬ¸¯ kStatType_InfoPanelRClick, // ¸ÞÀΠâ - Àü±¤ÆÇ ¿ìŬ¸¯ kStatType_ConfigClick, // ¸ÞÀΠâ - ¼³Á¤ ¹öư Ŭ¸¯ kStatType_GameStartClick, // ¸ÞÀΠâ - °ÔÀÓ ½ÃÀÛ ¹öư Ŭ¸¯ kStatType_EnterKey, // ¸ÞÀΠâ - ¿£ÅÍ Å° ´©¸§ (°ÔÀÓ ½ÃÀÛ) kStatType_GameSelectClick, // ¸ÞÀΠâ - °ÔÀÓ ¼±Åà ¹öư Ŭ¸¯ (ÁÂ¿ì ¹öư) kStatType_LeftRightKey, // ¸ÞÀΠâ - °ÔÀÓ ¼±Åà Ű Ŭ¸¯ (È­»ìÇ¥ Á¿ìŰ) kStatType_SpaceKey, // ¸ÞÀΠâ - Space Ű ´©¸§ (Ä£±¸/±æµå ¸®½ºÆ®) kStatType_FriendListClick, // ¸ÞÀΠâ - Ä£±¸/±æµå ¸®½ºÆ® Ŭ¸¯ kStatType_AltF4, // ¸ÞÀΠâ - Alt + F4 Ű ´©¸§ (´Ý±â) kStatType_Esc, // ¸ÞÀΠâ - Esc Ű ´©¸§ (´Ý±â) kStatType_CloseClick, // ¸ÞÀΠâ - ´Ý±â ¹öư Ŭ¸¯ kStatType_MinimizeClick, // ¸ÞÀΠâ - ÃÖ¼ÒÈ­ ¹öư Ŭ¸¯ kStatType_MainRClick, // ¸ÞÀΠâ - ¿ìŬ¸¯ (ÆË¾÷¸Þ´º »ç¿ë) kStatType_FriendTabClick = 40, // Ä£±¸/±æµå ¸®½ºÆ® - Ä£±¸ ÅÇ Å¬¸¯ kStatType_GuildTabClick, // Ä£±¸/±æµå ¸®½ºÆ® - ±æµå ÅÇ Å¬¸¯ kStatType_FriendDClick, // Ä£±¸/±æµå ¸®½ºÆ® - Ä£±¸ ´õºíŬ¸¯ (äÆÃ) kStatType_GuildMemberDClick, // Ä£±¸/±æµå ¸®½ºÆ® - ±æµå¿ø ´õºíŬ¸¯ (äÆÃ) kStatType_GuildChatClick, // Ä£±¸/±æµå ¸®½ºÆ® - ±æµåê ¹öư Ŭ¸¯ (±æµåê) kStatType_GuildHomeClick, // Ä£±¸/±æµå ¸®½ºÆ® - ±æµåȨ ¹öư Ŭ¸¯ kStatType_GuildMainClick, // Ä£±¸/±æµå ¸®½ºÆ® - ±æµå¸ÞÀÎ ¹öư Ŭ¸¯ kStatType_StateClick, // Ä£±¸/±æµå ¸®½ºÆ® - ÇöÀç »óÅ ¹öư Ŭ¸¯ kStatType_FriendGroupRClick, // Ä£±¸/±æµå ¸®½ºÆ® - ±×·ì¸í ¿ìŬ¸¯ (ÆË¾÷¸Þ´º »ç¿ë) kStatType_FriendRClick, // Ä£±¸/±æµå ¸®½ºÆ® - Ä£±¸ ¿ìŬ¸¯ (ÆË¾÷¸Þ´º »ç¿ë) kStatType_GuildRClick, // Ä£±¸/±æµå ¸®½ºÆ® - ±æµå¿ø ¿ìŬ¸¯ (ÆË¾÷¸Þ´º »ç¿ë) kStatType_TrayLClick = 60, // Æ®·¹ÀÌ - ÁÂŬ¸¯ (ÆË¾÷¸Þ´º »ç¿ë) kStatType_TrayRClick, // Æ®·¹ÀÌ - ¿ìŬ¸¯ (ÆË¾÷¸Þ´º »ç¿ë) kStatType_TrayDClick, // Æ®·¹ÀÌ - ´õºíŬ¸¯ (¸ÞÀΠâ ¿­±â) ////////////////////////////////// kStatType_NoCountSection = 70, // Ƚ¼ö ´©Àû½ÃŰÁö ¾Ê´Â ¿µ¿ª. Data1À» »ç¿ëÇÒ ¼ö ÀÖÀ½ // Å佺Ʈ´Â gamecode °¡ ¸ðµÎ kGameCode_plug ·Î ÀúÀåµÊ kStatType_ToastPopup = 70, // Å佺Ʈ - ÆË¾÷ (Data1: Å佺Ʈ Á¾·ù) kStatType_ToastClick, // Å佺Ʈ - Ŭ¸¯ (Data1: Å佺Ʈ Á¾·ù) // Data1: Å佺Ʈ Á¾·ù //kGameToastPaneType_NULL = 0 //kGameToastPaneType_Online = 1 //kGameToastPaneType_Chat = 2 //kGameToastPaneType_LevelUp = 3 //kGameToastPaneType_License = 4 //kGameToastPaneType_Play = 5 //kGameToastPaneType_PVPLevelUp = 6 //kGameToastPaneType_StageClear = 7 //kGameToastPaneType_ObtainItem = 8 //kGameToastPaneType_GradeUp = 9 // // ÆË¾÷ ¸Þ´º // ÀÏ¹Ý ¼­ºê¸Þ´º //kNMCommandId_UserCommon_OpenProfile = 136 //kNMCommandId_UserCommon_SendNote = 137 //kNMCommandId_UserCommon_OpenChat = 138 //kNMCommandId_UserCommon_AddFriend = 139 kStatType_PopupMain = 80, // ÆË¾÷¸Þ´º - ¸ÞÀÎ/Æ®·¹ÀÌ (Data1: ¼­ºê ¸Þ´º) // Data1: ¼­ºê ¸Þ´º //kNMCommandId_Login = 100 //kNMCommandId_Logout = 101 //kNMCommandId_Exit = 102 //kNMCommandId_OpenMain = 103 //kNMCommandId_OpenOptions = 104 //kNMCommandId_OpenHelp = 105 //kNMCommandId_OpenAbout = 106 kStatType_PopupGroup, // ÆË¾÷¸Þ´º - Ä£±¸±×·ì (Data1: ¼­ºê ¸Þ´º) // Data1: ¼­ºê ¸Þ´º //kNMCommandId_GroupItem_ChangeName = 113 //kNMCommandId_GroupItem_Delete = 114 //kNMCommandId_GroupItem_GroupChat = 115 //kNMCommandId_GroupItem_GroupNote = 116 //kNMCommandId_GroupItem_AddGroup = 117 //kNMCommandId_GroupItem_SortStatus = 118 //kNMCommandId_GroupItem_SortGroup = 119 //kNMCommandId_GroupItem_Refresh = 120 kStatType_PopupFriend, // ÆË¾÷¸Þ´º - Ä£±¸ (Data1: ¼­ºê ¸Þ´º) // Data1: ¼­ºê ¸Þ´º //kNMCommandId_FriendItem_OpenChat = 121 //kNMCommandId_FriendItem_SendFile = 122 //kNMCommandId_FriendItem_SendNote = 123 //kNMCommandId_FriendItem_OpenProfile = 124 //kNMCommandId_FriendItem_Block = 125 //kNMCommandId_FriendItem_Delete = 126 //kNMCommandId_FriendItem_MoveGroup = 127 //kNMCommandId_FriendItem_CopyGroup = 128 kStatType_PopupGuild, // ÆË¾÷¸Þ´º - ±æµå¿ø (Data1: ¼­ºê ¸Þ´º) // Data1: ¼­ºê ¸Þ´º //kNMCommandId_GuildMemberItem_OpenChat = 129 //kNMCommandId_GuildMemberItem_SendNote = 130 //kNMCommandId_GuildMemberItem_OpenProfile = 131 //kNMCommandId_GuildMemberItem_AddFriend = 132 kStatType_PopupStatus, // ÆË¾÷¸Þ´º - ÇöÀç »óÅ (Data1: ¼­ºê ¸Þ´º) // Data1: ¼­ºê ¸Þ´º //kNMCommandId_ChangeStatusOnline = 109 //kNMCommandId_ChangeStatusAway = 110 //kNMCommandId_ChangeStatusBusy = 111 //kNMCommandId_ChangeStatusAppearOffline = 112 // Plug - Status // ¸Þ½ÅÀú ·Î±ä ½ÃÁ¡¿¡ ÃøÁ¤ÇÏ¸ç ·Î±×Àκ° 1ȸ ¼öÁý kStatType_Settings = 90, // ȯ°æ¼³Á¤ÀÇ ¸ðµç ÀúÀå °ª (Data1: ¼³Á¤ ŸÀÔ, Data2: °ª) kStatType_MainPosition, // ȯ°æ¼³Á¤ÀÇ ¸ÞÀΠâ À§Ä¡ (·Î±×Àκ° 1ȸ ¼öÁý) kStatType_FriendListSize, // ȯ°æ¼³Á¤ÀÇ Ä£±¸ ¸®½ºÆ® Å©±â/À§Ä¡ (Data1: Å©±â, Data2: ¾Æ·¡(0), À§(1)) kStatType_FriendGroupingMethod, // ȯ°æ¼³Á¤ÀÇ Ä£±¸¸®½ºÆ® Á¤·Ä ¹æ½Ä (Data1: »óź°(1), ±×·ìº°(2)) // P2P Test report // P2P Test °á°ú º¸°í¿ë kStatType_P2PTest_Start = 100, kStatType_P2PTest_TestInfo, // Å×½ºÆ® Á¤º¸ (Data1: µ¥ÀÌÅÍ Å©±â, Data2: Àü¼Û ÁÖ±â) kStatType_P2PTest_LoginError, kStatType_P2PTest_SendDataError, kStatType_P2PTest_LoginReply, kStatType_P2PTest_SendDataReply, kStatType_P2PTest_SendCount, // Àü¼Û Ƚ¼ö kStatType_P2PTest_ResponseCount, // ÀÀ´ä Ƚ¼ö kStatType_P2PTest_MinResponseTime, // ÀÀ´ä ½Ã°£ ÃÖ¼Ò kStatType_P2PTest_MaxResponseTime, // ÀÀ´ä ½Ã°£ ÃÖ´ë kStatType_P2PTest_AvgResponseTime, // ÀÀ´ä ½Ã°£ Æò±Õ (ms) kStatType_P2PTest_End, // End mark kStatType_End, }; // call data NMSTATTYPE uType; UINT32 uClientDllGameCode; UINT32 uGameCode; UINT32 uData1; UINT32 uData2; // return data // NONE public: CNMSetStatInfoFunc( void ); CNMSetStatInfoFunc( NMSTATTYPE uType, UINT32 uClientDllGameCode, UINT32 uGameCode, UINT32 uData1, UINT32 uData2 ); DECLARE_SERIALIZABLE }; class CNMSetLocaleFunc : public CNMFunc { public: DECLARE_NMFUNC( SetLocale ) public: // call data NMLOCALEID uLocaleID; // DO NOT USE THIS! UINT32 uRegionCode; // return data // NONE public: CNMSetLocaleFunc( void ); CNMSetLocaleFunc( NMLOCALEID uLocaleID, UINT32 uRegionCode = 0 ); DECLARE_SERIALIZABLE }; class CNMGetNexonPassportFunc : public CNMFunc { public: DECLARE_NMFUNC( GetNexonPassport ) // call data BOOL bSecondary; // return data TCHAR szNexonPassport[ PASSPORT_SIZE ]; public: CNMGetNexonPassportFunc(); CNMGetNexonPassportFunc( BOOL bSecondary ); DECLARE_SERIALIZABLE }; class CNMGetMatrixInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( GetMatrixInfo ) // return data StringZip< MATRIXDATA_SIZE > szMatrixInfo; public: CNMGetMatrixInfoFunc(); DECLARE_SERIALIZABLE }; class CNMGetNxHWIDFunc : public CNMFunc { public: DECLARE_NMFUNC( GetNxHWID ) // return data StringZip< NXHWID_SIZE > szNxHWID; public: CNMGetNxHWIDFunc(); DECLARE_SERIALIZABLE }; class CNMGetServerInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( GetServerInfo ) // // NOTE: ÀÌ Å¸ÀÔÀº ServerInfoLayer::LayerType ÀÌ´º¸Ó·¹ÀÌÅÍ¿Í °ªÀ» ¸ÂÃç¾ß ÇÕ´Ï´Ù. // enum LayerType { DEFAULT_LAYER = 0, SYSTEM_LAYER = 1, DLLCONFIG_LAYER = 2, EXECONFIG_LAYER = 3, CONFIG_LAYER = 4, CUSTOM_LAYER = 5, LAYER_COUNT = 6 }; // call data ServerInfo::ServerType uServerType; LayerType uLayerType; // return data ServerInfoList aServerInfo; public: CNMGetServerInfoFunc(); CNMGetServerInfoFunc( ServerInfo::ServerType uServerType, LayerType uLayerType = DEFAULT_LAYER ); DECLARE_SERIALIZABLE }; class CNMGetFriendListFunc : public CNMFunc { public: DECLARE_NMFUNC( GetFriendList ) // call data NMVirtualKey keyVirtuality; // return data NMCategoryUserList aCateUserList; NMFriendList aUnrelated; public: CNMGetFriendListFunc( void ); CNMGetFriendListFunc( NMVirtualKey keyVirtuality ); DECLARE_SERIALIZABLE }; class CNMGetFriendInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( GetFriendInfo ) // call data NMFriendKey keyFriend; // return data CNMFriendInfo fiFriendInfo; public: CNMGetFriendInfoFunc( void ); CNMGetFriendInfoFunc( NMFriendKey keyFriend ); DECLARE_SERIALIZABLE }; class CNMRequestNewFriendFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestNewFriend ) // call data CNMRequestNewFriendData rnfData; // return data // NONE public: CNMRequestNewFriendFunc( void ); CNMRequestNewFriendFunc( CNMRequestNewFriendData& rnfData ); DECLARE_SERIALIZABLE }; class CNMConfirmNewFriendFunc : public CNMFunc { public: DECLARE_NMFUNC( ConfirmNewFriend ) // call data _UInt32_ uSerialNo; NMCONFIRMCODE uConfirmCode; _UInt32_ uInsertCategoryCode; // return data // NONE public: CNMConfirmNewFriendFunc( void ); CNMConfirmNewFriendFunc( _UInt32_ uSerialNo, NMCONFIRMCODE uConfirmCode, _UInt32_ uInsertCategoryCode ); DECLARE_SERIALIZABLE }; class CNMBlockFriendFunc : public CNMFunc { public: DECLARE_NMFUNC( BlockFriend ) // call data NMFriendKey keyFriend; BOOL bBlock; // return data // NONE public: CNMBlockFriendFunc( void ); CNMBlockFriendFunc( NMFriendKey keyFriend, BOOL bBlock ); DECLARE_SERIALIZABLE }; class CNMChangeFriendMemoFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeFriendMemo ) // call data _UInt64_ uIDCode; TCHAR szMemo[ MEMO_SIZE ]; // return data // NONE public: CNMChangeFriendMemoFunc( void ); CNMChangeFriendMemoFunc( _UInt64_ uIDCode, LPCTSTR szMemo ); DECLARE_SERIALIZABLE }; class CNMChangeFriendMemoExFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeFriendMemoEx ) // call data NMFriendKey keyFriend; TCHAR szMemo[ MEMO_SIZE ]; // return data // NONE public: CNMChangeFriendMemoExFunc( void ); CNMChangeFriendMemoExFunc( NMFriendKey keyFriend, LPCTSTR szMemo ); DECLARE_SERIALIZABLE }; class CNMAddFriendToCategoryFunc : public CNMFunc { public: DECLARE_NMFUNC( AddFriendToCategory ) // call data NMFriendKey keyFriend; UINT32 uCategoryCode; BOOL bSystemCall; // return data // NONE public: CNMAddFriendToCategoryFunc( void ); CNMAddFriendToCategoryFunc( NMFriendKey keyFriend, UINT32 uCategoryCode, BOOL bSystemCall = FALSE ); DECLARE_SERIALIZABLE }; class CNMDeleteFriendFromCategoryFunc : public CNMFunc { public: DECLARE_NMFUNC( DeleteFriendFromCategory ) // call data NMFriendKey keyFriend; UINT32 uCategoryCode; BOOL bSystemCall; // return data // NONE public: CNMDeleteFriendFromCategoryFunc( void ); CNMDeleteFriendFromCategoryFunc( NMFriendKey keyFriend, UINT32 uCategoryCode, BOOL bSystemCall = FALSE ); DECLARE_SERIALIZABLE }; class CNMMoveFriendCategoryFunc : public CNMFunc { public: DECLARE_NMFUNC( MoveFriendCategory ) // call data NMFriendKey keyFriend; UINT32 uFromCateCode; UINT32 uToCateCode; BOOL bSystemCall; // return data // NONE public: CNMMoveFriendCategoryFunc( void ); CNMMoveFriendCategoryFunc( NMFriendKey keyFriend, UINT32 uFromCateCode, UINT32 uToCateCode, BOOL bSystemCall ); DECLARE_SERIALIZABLE }; class CNMAddCategoryFunc : public CNMFunc { public: DECLARE_NMFUNC( AddCategory ) // call data NMVirtualKey keyOwner; TCHAR szCategoryName[ CATEGORY_SIZE ]; NMCATEGORYPROPERTY uProperty; NMALLOWTYPE uAllowType; // return data // NONE public: CNMAddCategoryFunc( void ); CNMAddCategoryFunc( NMVirtualKey keyOwner, LPCTSTR szCategoryName, NMCATEGORYPROPERTY uProperty = kCateProp_None, NMALLOWTYPE uAllowType = kConfigAllowValue_FromAll ); DECLARE_SERIALIZABLE }; class CNMDeleteCategoryFunc : public CNMFunc { public: DECLARE_NMFUNC( DeleteCategory ) // call data UINT32 uCategoryCode; BOOL bSystemCall; // return data // NONE public: CNMDeleteCategoryFunc( void ); CNMDeleteCategoryFunc( UINT32 uCategoryCode, BOOL bSystemCall = FALSE ); DECLARE_SERIALIZABLE }; class CNMChangeCategoryNameFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeCategoryName ) // call data UINT32 uCategoryCode; TCHAR szCategoryName[ CATEGORY_SIZE ]; BOOL bSystemCall; // return data // NONE public: CNMChangeCategoryNameFunc( void ); CNMChangeCategoryNameFunc( UINT32 uCategoryCode, LPCTSTR szCategoryName, BOOL bSystemCall = FALSE ); DECLARE_SERIALIZABLE }; class CNMChangeCategoryPropertyFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeCategoryProperty ) // call data UINT32 uCategoryCode; NMCATEGORYPROPERTY uProperty; BOOL bSystemCall; // return data // NONE public: CNMChangeCategoryPropertyFunc( void ); CNMChangeCategoryPropertyFunc( UINT32 uCategoryCode, NMCATEGORYPROPERTY uProperty, BOOL bSystemCall = FALSE ); DECLARE_SERIALIZABLE }; class CNMChangeCategoryAllowTypeFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeCategoryAllowType ) // call data UINT32 uCategoryCode; NMALLOWTYPE uAllowType; BOOL bSystemCall; // return data // NONE public: CNMChangeCategoryAllowTypeFunc( void ); CNMChangeCategoryAllowTypeFunc( UINT32 uCategoryCode, NMALLOWTYPE uAllowType, BOOL bSystemCall = FALSE ); DECLARE_SERIALIZABLE }; class CNMGetNoteBoxFunc : public CNMFunc { public: DECLARE_NMFUNC( GetNoteBox ) // call data NMNOTEBOXTYPE uBoxType; _UInt32_ uNoteSerial; _UInt32_ uStartPtr; // return data NMNoteList aNotes; BOOL bMore; public: CNMGetNoteBoxFunc( void ); CNMGetNoteBoxFunc( NMNOTEBOXTYPE uBoxType, _UInt32_ uNoteSerial ); CNMGetNoteBoxFunc( NMNOTEBOXTYPE uBoxType, _UInt32_ uNoteSerial, _UInt32_ uStartPtr ); DECLARE_SERIALIZABLE }; class CNMSendNoteMsgFunc : public CNMFunc { public: DECLARE_NMFUNC( SendNoteMsg ) // call data BOOL bSaveToPermBox; CNMNoteInfo noteInfo; // return data // NONE public: CNMSendNoteMsgFunc( void ); CNMSendNoteMsgFunc( CNMNoteInfo::NMNOTETYPE uNoteType, CNMNoteInfo::NMNOTESUBTYPE uSubType, LPCTSTR szTargetId, LPCTSTR szMessage, LPCTSTR szArgument, LPCTSTR szCustomData, BOOL bSaveToPermBox ); CNMSendNoteMsgFunc( CNMNoteInfo::NMNOTETYPE uNoteType, CNMNoteInfo::NMNOTESUBTYPE uSubType, NMVirtualKey keyFromVirtual, LPCTSTR szTargetId, LPCTSTR szMessage, LPCTSTR szArgument, LPCTSTR szCustomData, BOOL bSaveToPermBox ); DECLARE_SERIALIZABLE }; class CNMSendAccuseNoteMsgFunc : public CNMFunc { public: DECLARE_NMFUNC( SendAccuseNoteMsg ) // call data CNMReportInfo riReportInfo; // return data // NONE public: CNMSendAccuseNoteMsgFunc( void ); CNMSendAccuseNoteMsgFunc( CNMReportInfo::NMREPORTSUBTYPE uSubType, LPCTSTR szReason, _UInt32_ uNoteSerial = 0 ); DECLARE_SERIALIZABLE }; class CNMProcessNoteFunc : public CNMFunc { public: DECLARE_NMFUNC( ProcessNote ) enum { kType_SetReadFlag = 0, kType_SaveToPerm = 1, kType_DeleteNote = 2, }; // call data _UInt32_ uType; _UInt32_ uNoteSerial; // return data // NONE public: CNMProcessNoteFunc( void ); CNMProcessNoteFunc( _UInt32_ uType, _UInt32_ uNoteSerial ); DECLARE_SERIALIZABLE }; ////////////////////////////////////////////////////////////////////////// // CNMSendNoteInfoFunc ////////////////////////////////////////////////////////////////////////// class CNMSendNoteInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( SendNoteInfo ) // call data BOOL bSaveToPermBox; CNMNoteInfo2 noteInfo; // return data // NONE public: CNMSendNoteInfoFunc( void ); CNMSendNoteInfoFunc( CNMNoteInfo & noteInfo, BOOL bSaveToPermBox ); DECLARE_SERIALIZABLE }; ////////////////////////////////////////////////////////////////////////// // CNMGetNoteBox2Func : public CNMFunc ////////////////////////////////////////////////////////////////////////// class CNMGetNoteBox2Func : public CNMFunc { public: DECLARE_NMFUNC( GetNoteBox2 ) // call data NMNOTEBOXTYPE uBoxType; UINT32 uNoteSerial; UINT32 uStartPtr; // return data NMNoteInfoList aNotes; BOOL bMore; public: CNMGetNoteBox2Func(); CNMGetNoteBox2Func( NMNOTEBOXTYPE uBoxType, UINT32 uNoteSerial, UINT32 uStartPtr = 0 ); DECLARE_SERIALIZABLE }; ////////////////////////////////////////////////////////////////////////// // CNMGetRejectedUserListFunc ////////////////////////////////////////////////////////////////////////// class CNMGetRejectedUserListFunc : public CNMFunc { public: DECLARE_NMFUNC( GetRejectedUserList ) // call data // NONE // return data NMRejectedUserList rejectedUserList; public: CNMGetRejectedUserListFunc(); DECLARE_SERIALIZABLE }; ////////////////////////////////////////////////////////////////////////// // CNMAppendRejectedUserFunc ////////////////////////////////////////////////////////////////////////// class CNMAppendRejectedUserFunc : public CNMFunc { public: DECLARE_NMFUNC( AppendRejectedUser ) // call data CNMRejectedUser rejectedUser; // return data // NONE public: CNMAppendRejectedUserFunc(); CNMAppendRejectedUserFunc(CNMRejectedUser & rejectedUser); DECLARE_SERIALIZABLE }; ////////////////////////////////////////////////////////////////////////// // CNMRemoveRejectedUserFunc ////////////////////////////////////////////////////////////////////////// class CNMRemoveRejectedUserFunc : public CNMFunc { public: DECLARE_NMFUNC( RemoveRejectedUser ) // call data CNMRejectedUser rejectedUser; // return data // NONE public: CNMRemoveRejectedUserFunc(); CNMRemoveRejectedUserFunc(CNMRejectedUser const & rejectedUser); CNMRemoveRejectedUserFunc(CNMCharacter const & rejectedCharacter, LPCTSTR pszMemo = NULL); DECLARE_SERIALIZABLE }; class CNMGetMyGuildListExFunc : public CNMFunc { public: DECLARE_NMFUNC( GetMyGuildListEx ) // call data // NONE // return data CNMGuildListExInfo gliGuildList; public: CNMGetMyGuildListExFunc( void ); DECLARE_SERIALIZABLE }; class CNMMonitorGuildOnlineInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( MonitorGuildOnlineInfo ) // call data UINT32 uGuildSerialNo; BOOL bMonitorAttach; UINT32 uServingProcessID; // NONE // return data public: CNMMonitorGuildOnlineInfoFunc( void ); CNMMonitorGuildOnlineInfoFunc( UINT32 uGuildSerialNo, BOOL bMonitorAttach ); CNMMonitorGuildOnlineInfoFunc( UINT32 uGuildSerialNo, BOOL bMonitorAttach, UINT32 uServingProcessID ); DECLARE_SERIALIZABLE }; class CNMMonitorGuildOnlineInfoExFunc : public CNMFunc { public: DECLARE_NMFUNC( MonitorGuildOnlineInfoEx ) // call data NMGuildKey uGuildKey; BOOL bMonitorAttach; UINT32 uServingProcessID; UINT32 uGameCode; UINT32 uVirtualIDCode; // return data // NONE public: CNMMonitorGuildOnlineInfoExFunc(); CNMMonitorGuildOnlineInfoExFunc( NMGuildKey uGuildKey, BOOL bMonitorAttach ); CNMMonitorGuildOnlineInfoExFunc( NMGuildKey uGuildKey, BOOL bMonitorAttach, UINT32 uServingProcessID ); CNMMonitorGuildOnlineInfoExFunc( NMGuildKey uGuildKey, BOOL bMonitorAttach, UINT32 uServingProcessID, UINT32 uGameCode, UINT32 uVirtualIDCode ); DECLARE_SERIALIZABLE }; class CNMSendGuildChatMessageFunc : public CNMFunc { public: DECLARE_NMFUNC( SendGuildChatMessage ) // call data NMGuildKey uGuildKey; NMIDCode uToIDCode[ 10 ]; _UInt8_ uMemberLevel; CNMChatMessage cmChatMsg; // return data // NONE public: CNMSendGuildChatMessageFunc( void ); CNMSendGuildChatMessageFunc( NMGuildKey uGuildKey, _UInt8_ uMemberLevel, NMIDCode uToIDCode[ 10 ], CNMChatMessage cmChatMsg ); DECLARE_SERIALIZABLE }; class CNMExecutePatcherFunc : public CNMFunc { public: DECLARE_NMFUNC( ExecutePatcher ) // call data TCHAR szUrl[ 256 ]; TCHAR szPatchDir[ 256 ]; TCHAR szExecCmdLine[ 2000 ]; BOOL bWaitParentExit; BOOL bWaitPatchEnd; // return data // NONE public: CNMExecutePatcherFunc( void ); CNMExecutePatcherFunc( LPCTSTR szUrl, LPCTSTR szPatchDir, LPCTSTR szExecCmdLine, BOOL bWaitParentExit, BOOL bWaitPatchEnd ); DECLARE_SERIALIZABLE }; class CNMExecuteLauncherFunc : public CNMFunc { public: DECLARE_NMFUNC( ExecuteLauncher ) // call data _UInt32_ uGameCode; _UInt32_ uLaunchType; TCHAR szArgument[ 2000 ]; BOOL bWaitParentExit; // return data // NONE public: CNMExecuteLauncherFunc( void ); CNMExecuteLauncherFunc( _UInt32_ uGameCode, _UInt32_ uLaunchType, LPCTSTR szArgument, BOOL bWaitParentExit ); DECLARE_SERIALIZABLE }; class CNMExecuteNGMPatcherFunc : public CNMFunc { public: DECLARE_NMFUNC( ExecuteNGMPatcher ) // call data _UInt32_ uGameCode; TCHAR szUrl[ 256 ]; TCHAR szPatchDir[ 256 ]; TCHAR szExecCmdLine[ 1024 ]; BOOL bWaitParentExit; BOOL bSmallDialog; BOOL bUseLocalNGM; TCHAR szSessionID[ 32 ]; _UInt32_ uPatchType; // return data // NONE public: CNMExecuteNGMPatcherFunc( void ); CNMExecuteNGMPatcherFunc( _UInt32_ uGameCode, LPCTSTR szUrl, LPCTSTR szPatchDir, LPCTSTR szExecCmdLine, BOOL bWaitParentExit, BOOL bSmallDialog, BOOL bUseLocalNGM, LPCTSTR szSessionID, _UInt32_ uPatchType ); DECLARE_SERIALIZABLE }; class CNMExecuteNGMLauncherFunc : public CNMFunc { public: DECLARE_NMFUNC( ExecuteNGMLauncher ) // call data _UInt32_ uGameCode; _UInt32_ uLaunchType; TCHAR szArgument[ 1024 ]; BOOL bWaitParentExit; TCHAR szPassport[ 1024 ]; BOOL bUseLocalNGM; TCHAR szStickPath[ 8 ]; // return data // NONE public: CNMExecuteNGMLauncherFunc( void ); CNMExecuteNGMLauncherFunc( _UInt32_ uGameCode, _UInt32_ uLaunchType, LPCTSTR szArgument, BOOL bWaitParentExit, LPCTSTR szPassport, BOOL bUseLocalNGM, LPCTSTR szStickPath ); DECLARE_SERIALIZABLE }; class CNMExecuteNGMInstallerFunc : public CNMFunc { public: DECLARE_NMFUNC( ExecuteNGMInstaller ) // call data _UInt32_ uGameCode; BOOL bWaitParentExit; BOOL bLaunchAfterInstall; TCHAR szArgument[ 1024 ]; TCHAR szPassport[ 1024 ]; TCHAR szSessionID[ 32 ]; // return data // NONE public: CNMExecuteNGMInstallerFunc( void ); CNMExecuteNGMInstallerFunc( _UInt32_ uGameCode, BOOL bWaitParentExit, BOOL bLaunchAfterInstall, LPCTSTR szArgument, LPCTSTR szPassport, LPCTSTR szSessionID ); DECLARE_SERIALIZABLE }; class CNMIsNGMInstalledFunc : public CNMFunc { public: DECLARE_NMFUNC( IsNGMInstalled ) // call data // NONE // return data BOOL bInstalled; public: CNMIsNGMInstalledFunc( void ); DECLARE_SERIALIZABLE }; class CNMRestrictedWordsFunc : public CNMFunc { public: DECLARE_NMFUNC( RestrictedWords ) enum { kOpType_HasRestrictedWords = 1, kOpType_ReplaceRestrictedWords = 2, kMaxTextSize = 1024, }; // call data UINT32 uOpType; NMGameCode uGameCode; StringZip< kMaxTextSize > szText; // return data BOOL bHasRestrictedWords; public: CNMRestrictedWordsFunc(); CNMRestrictedWordsFunc( UINT32 uOpType, NMGameCode uGameCode, LPCTSTR pszText ); DECLARE_SERIALIZABLE }; class CNMMinimizeAllFunc : public CNMFunc { public: DECLARE_NMFUNC( MinimizeAll ) // call data BOOL bMinimize; // return data // NONE public: CNMMinimizeAllFunc( void ); CNMMinimizeAllFunc( BOOL bMinimize ); DECLARE_SERIALIZABLE }; class CNMLogReportSyncFunc : public CNMFunc { public: DECLARE_NMFUNC( LogReportSync ) // call data UINT16 uLogType; // return data // NONE public: CNMLogReportSyncFunc( void ); CNMLogReportSyncFunc( UINT16 uLogType ); DECLARE_SERIALIZABLE }; class CNMIsGuestIDPassportFunc : public CNMFunc { public: DECLARE_NMFUNC( IsGuestIDPassport ) // call data TCHAR szPassport[ PASSPORT_SIZE ]; // return data // NONE public: CNMIsGuestIDPassportFunc( void ); CNMIsGuestIDPassportFunc( LPCTSTR szPassport ); DECLARE_SERIALIZABLE }; class CNMSetServerInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( SetServerInfo ) // call data ServerInfoList aServerInfo; // return data // NONE public: CNMSetServerInfoFunc(); CNMSetServerInfoFunc( ServerInfoList const & aServerInfo ); DECLARE_SERIALIZABLE }; class CNMWriteToWiselogFunc : public CNMFunc { public: DECLARE_NMFUNC( WriteToWiselog ) // call data TCHAR szUrl[ 1024 ]; // return data // NONE public: CNMWriteToWiselogFunc( void ); CNMWriteToWiselogFunc( LPCTSTR szUrl ); DECLARE_SERIALIZABLE }; class CNMExecuteCommonFunc : public CNMFunc { public: DECLARE_NMFUNC( ExecuteCommon ) enum { kType_StartMessenger = 0, kType_ReinstallMessenger, kType_PatchNMService, // obsolete kType_DeletePatcher, // obsolete kType_PatchMessenger, // obsolete kType_StartPlug, kType_PatchPlug, // obsolete kType_ReinstallPlug, }; // call data _UInt32_ uType; TCHAR szArgument[ DOMAIN_SIZE ]; // return data // NONE public: CNMExecuteCommonFunc( void ); CNMExecuteCommonFunc( _UInt32_ uType, LPCTSTR szArgument ); DECLARE_SERIALIZABLE }; class CNMGetUrlFunc : public CNMFunc { public: DECLARE_NMFUNC( GetUrl ) // call data NMURLTYPE uType; NMURLPAGE uPage; // for kURLType_Page _UInt32_ uGameCode; // for kURLType_Game _UInt32_ uGuildSerial; // for kURLType_Guild TCHAR szUrl[ 256 ]; // for kURLType_DirectURL _UInt32_ uParam; // additional number param TCHAR szParam[ 256 ]; // additional string param BOOL bLoginDirect; BOOL bIsPopup; BOOL bNoActiveX; // return data TCHAR szUrlOut[ 1024 ]; public: CNMGetUrlFunc( void ); DECLARE_SERIALIZABLE }; class CNMGetUrlExFunc : public CNMFunc { public: DECLARE_NMFUNC( GetUrlEx ) // call data NMURLTYPE uType; NMURLPAGE uPage; // for kURLType_Page _UInt32_ uGameCode; // for kURLType_Game NMGuildKey uGuildKey; // for kURLType_Guild TCHAR szUrl[ 512 ]; // for kURLType_DirectURL _UInt32_ uParam; // additional number param TCHAR szParam[ 256 ]; // additional string param BOOL bLoginDirect; BOOL bIsPopup; BOOL bNoActiveX; UINT32 uMaskGameCode; // °ÔÀÓ¿¡¼­ È£ÃâÇÏ¸é ·Î±×ÀΠó¸® È­¸éÀÌ ´Þ¶óÁý´Ï´Ù // return data TCHAR szUrlOut[ 1024 ]; public: CNMGetUrlExFunc( void ); DECLARE_SERIALIZABLE }; class CNMDownloadGuildMarkFileFunc : public CNMFunc { public: DECLARE_NMFUNC( DownloadGuildMarkFile ) // call data NMGameCode uGameCode; NMGuildKey uGuildKey; TCHAR szDownloadDir[ 256 ]; // return data // NONE public: CNMDownloadGuildMarkFileFunc( void ); CNMDownloadGuildMarkFileFunc( NMGameCode uGameCode, NMGuildKey uGuildKey, LPCTSTR szDownloadDir ); DECLARE_SERIALIZABLE }; class CNMDownloadFileFunc : public CNMFunc { public: DECLARE_NMFUNC( DownloadFile ) // call data TCHAR szUrl[ 256 ]; TCHAR szFileName[ 256 ]; // return data // NONE public: CNMDownloadFileFunc( void ); CNMDownloadFileFunc( LPCTSTR szUrl, LPCTSTR szFileName ); DECLARE_SERIALIZABLE }; class CNMUploadFileFunc : public CNMFunc { public: DECLARE_NMFUNC( UploadFile ) // call data TCHAR szUrl[ 1024 ]; TCHAR szFileName[ 256 ]; TCHAR szPostField[ 256 ]; BOOL bAppendPassport; // return data TCHAR szResponse[ 1024 ]; public: CNMUploadFileFunc( void ); CNMUploadFileFunc( LPCTSTR szUrl, LPCTSTR szFileName, LPCTSTR szPostField, BOOL bAppendPassport ); DECLARE_SERIALIZABLE }; class CNMGetSupportGameListFunc : public CNMFunc { public: DECLARE_NMFUNC( GetSupportGameList ) // call data BOOL bAll; // return data NMGameCodeList aGameCodeList; public: CNMGetSupportGameListFunc( void ); CNMGetSupportGameListFunc( BOOL bAll ); DECLARE_SERIALIZABLE }; class CNMGetGameServerListFunc : public CNMFunc { public: DECLARE_NMFUNC( GetGameServerList ) // call data NMGameCode uGameCode; // return data NMGameServerCodeList aGameServerCodeList; public: CNMGetGameServerListFunc( void ); CNMGetGameServerListFunc( NMGameCode uGameCode ); DECLARE_SERIALIZABLE }; class CNMGetGameFullNameFunc : public CNMFunc { public: DECLARE_NMFUNC( GetGameFullName ) // call data NMGameCode uGameCode; // return data TCHAR szGameFullName[ 128 ]; public: CNMGetGameFullNameFunc( void ); CNMGetGameFullNameFunc( NMGameCode uGameCode ); DECLARE_SERIALIZABLE }; class CNMGetGameShortNameFunc : public CNMFunc { public: DECLARE_NMFUNC( GetGameShortName ) // call data NMGameCode uGameCode; // return data TCHAR szGameShortName[ 128 ]; public: CNMGetGameShortNameFunc( void ); CNMGetGameShortNameFunc( NMGameCode uGameCode ); DECLARE_SERIALIZABLE }; class CNMGetGameFriendTitleFunc : public CNMFunc { public: DECLARE_NMFUNC( GetGameFriendTitle ) // call data NMGameCode uGameCode; // return data TCHAR szGameFriendTitle[ 128 ]; public: CNMGetGameFriendTitleFunc( void ); CNMGetGameFriendTitleFunc( NMGameCode uGameCode ); DECLARE_SERIALIZABLE }; class CNMGetGameServerNameFunc : public CNMFunc { public: DECLARE_NMFUNC( GetGameServerName ) // call data NMGameCode uGameCode; NMGameServerCode uGameServerCode; // return data TCHAR szGameServerName[ 128 ]; public: CNMGetGameServerNameFunc( void ); CNMGetGameServerNameFunc( NMGameCode uGameCode, NMGameServerCode uGameServerCode ); DECLARE_SERIALIZABLE }; class CNMGetPathFunc : public CNMFunc { public: DECLARE_NMFUNC( GetPath ) enum { kCommon = 0, kAvatarCache = 1, kMessengerClient = 2, kUserData = 3, }; // call data _UInt32_ uPathType; // return data TCHAR szPath[ MAX_PATH ]; public: CNMGetPathFunc( void ); CNMGetPathFunc( _UInt32_ uPathType ); DECLARE_SERIALIZABLE }; class CNMSetSessionValueFunc : public CNMFunc { public: DECLARE_NMFUNC( SetSessionValue ) // call data TCHAR szName[ 32 ]; TCHAR szValue[ 256 ]; BOOL bAttachToProcess; _UInt32_ uProcessId; // return data // NONE public: CNMSetSessionValueFunc( void ); CNMSetSessionValueFunc( LPCTSTR szName, LPCTSTR szValue, BOOL bAttachToProcess ); DECLARE_SERIALIZABLE }; class CNMGetSessionValueFunc : public CNMFunc { public: DECLARE_NMFUNC( GetSessionValue ) // call data TCHAR szName[ 32 ]; // return data TCHAR szValue[ 256 ]; public: CNMGetSessionValueFunc( void ); CNMGetSessionValueFunc( LPCTSTR szName ); DECLARE_SERIALIZABLE }; class CNMGetGameListFunc : public CNMFunc { public: DECLARE_NMFUNC( GetGameList ) // call data // NONE // return data CNMGameListData glGameList; public: CNMGetGameListFunc( void ); DECLARE_SERIALIZABLE }; class CNMOpenGameSummaryFunc : public CNMFunc { public: DECLARE_NMFUNC( OpenGameSummary ) // call data // NONE // return data // NONE public: CNMOpenGameSummaryFunc( void ); DECLARE_SERIALIZABLE }; class CNMGetUserInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( GetUserInfo ) // call data TCHAR szTargetID[ LOGINID_SIZE ]; _UInt32_ uGameCode; // return data // NONE public: CNMGetUserInfoFunc( void ); CNMGetUserInfoFunc( LPCTSTR szTargetID, _UInt32_ uGameCode ); DECLARE_SERIALIZABLE }; class CNMFindUserFunc : public CNMFunc { public: DECLARE_NMFUNC( FindUser ) // call data CNMFindUserRequestInfo furiRequestInfo; // return data _UInt32_ uToken; public: CNMFindUserFunc( void ); CNMFindUserFunc( CNMFindUserRequestInfo& furiRequestInfo ); DECLARE_SERIALIZABLE }; class CNMGetFindUserResultFunc : public CNMFunc { public: DECLARE_NMFUNC( GetFindUserResult ) // call data _UInt32_ uToken; // return data NMFindUserInfoList aFoundUser; public: CNMGetFindUserResultFunc( void ); CNMGetFindUserResultFunc( _UInt32_ uToken ); DECLARE_SERIALIZABLE }; class CNMSendNoteExMsgFunc : public CNMFunc { public: DECLARE_NMFUNC( SendNoteExMsg ) // call data CNMNoteInfoEx nieNoteEx; // return data // NONE public: CNMSendNoteExMsgFunc( void ); CNMSendNoteExMsgFunc( CNMNoteInfoEx::NMNOTEEXTYPE uNoteExType, LPCTSTR szMessage ); DECLARE_SERIALIZABLE }; class CNMSendReportMsgFunc : public CNMFunc { public: DECLARE_NMFUNC( SendReportMsg ) // call data CNMReportInfo riReportInfo; // return data // NONE public: CNMSendReportMsgFunc( void ); CNMSendReportMsgFunc( CNMReportInfo::NMREPORTTYPE uType, CNMReportInfo::NMREPORTSUBTYPE uSubType, LPCTSTR szTargetNickname, LPCTSTR szReason, LPCTSTR szEvidence, _UInt32_ uGameCode, _UInt32_ uAppliedGameCode, LPCTSTR szReporterNickname ); DECLARE_SERIALIZABLE }; class CNMRequestChatSessionFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestChatSession ) // call data NMFriendCode fcFriendCode; _UInt32_ uServingProcessID; // return data _UInt32_ uExistingSerialKey; _UInt32_ uCreatedSerialKey; public: CNMRequestChatSessionFunc( void ); CNMRequestChatSessionFunc( NMFriendCode fcFriendCode, _UInt32_ uServingProcessID ); DECLARE_SERIALIZABLE }; class CNMRequestMultiChatSessionFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestMultiChatSession ) // call data NMVirtualKey keyVirtuality; NMFriendCodeList aFriendCodes; _UInt32_ uServingProcessID; // return data _UInt32_ uCreatedSerialKey; public: CNMRequestMultiChatSessionFunc( void ); CNMRequestMultiChatSessionFunc( NMVirtualKey keyVirtuality, NMFriendCodeList& aFriendCodeList, _UInt32_ uServingProcessID ); DECLARE_SERIALIZABLE }; class CNMRequestFileUploadSessionFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestFileUploadSession ) // call data NMFriendCode fcFriendCode; _UInt32_ uServingProcessID; NMFilePathList aFilePath; // return data _UInt32_ uExistingSerialKey; _UInt32_ uCreatedSerialKey; public: CNMRequestFileUploadSessionFunc( void ); CNMRequestFileUploadSessionFunc( NMFriendCode fcFriendCode, _UInt32_ uServingProcessID, NMFilePathList aFilePath ); DECLARE_SERIALIZABLE }; class CNMRequestWBSessionFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestWBSession ) // call data NMFriendCode fcFriendCode; _UInt32_ uAssocSerialKey; _UInt32_ uServingProcessID; // return data _UInt32_ uExistingSerialKey; _UInt32_ uCreatedSerialKey; public: CNMRequestWBSessionFunc( void ); CNMRequestWBSessionFunc( NMFriendCode fcFriendCode, _UInt32_ uAssocSerialKey, _UInt32_ uServingProcessID ); DECLARE_SERIALIZABLE }; class CNMRequestChatSessionExFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestChatSessionEx ) // call data NMFriendKey keyFriend; _UInt32_ uServingProcessID; // return data _UInt32_ uExistingSerialKey; _UInt32_ uCreatedSerialKey; public: CNMRequestChatSessionExFunc( void ); CNMRequestChatSessionExFunc( NMFriendKey keyFriend, _UInt32_ uServingProcessID ); DECLARE_SERIALIZABLE }; class CNMRequestMultiChatSessionExFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestMultiChatSessionEx ) // call data NMVirtualKey keyVirtuality; NMFriendKeyList aFriendKey; _UInt32_ uServingProcessID; // return data _UInt32_ uCreatedSerialKey; public: CNMRequestMultiChatSessionExFunc( void ); CNMRequestMultiChatSessionExFunc( NMVirtualKey keyVirtuality, NMFriendKeyList& aFriendKey, _UInt32_ uServingProcessID ); DECLARE_SERIALIZABLE }; class CNMRequestFileUploadSessionExFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestFileUploadSessionEx ) // call data NMFriendKey keyFriend; _UInt32_ uServingProcessID; NMFilePathList aFilePath; // return data _UInt32_ uExistingSerialKey; _UInt32_ uCreatedSerialKey; public: CNMRequestFileUploadSessionExFunc( void ); CNMRequestFileUploadSessionExFunc( NMFriendKey keyFriend, _UInt32_ uServingProcessID, NMFilePathList aFilePath ); DECLARE_SERIALIZABLE }; class CNMRequestWBSessionExFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestWBSessionEx ) // call data NMFriendKey keyFriend; _UInt32_ uAssocSerialKey; _UInt32_ uServingProcessID; // return data _UInt32_ uExistingSerialKey; _UInt32_ uCreatedSerialKey; public: CNMRequestWBSessionExFunc( void ); CNMRequestWBSessionExFunc( NMFriendKey keyFriend, _UInt32_ uAssocSerialKey, _UInt32_ uServingProcessID ); DECLARE_SERIALIZABLE }; class CNMReplySessionRequestFunc : public CNMFunc { public: DECLARE_NMFUNC( ReplySessionRequest ) // call data _UInt64_ uSessionID; _UInt32_ uServingProcessID; BOOL bAccept; // return data // NONE public: CNMReplySessionRequestFunc( void ); CNMReplySessionRequestFunc( _UInt64_ uSessionID, BOOL bAccept ); DECLARE_SERIALIZABLE }; class CNMCreateChatRoomFunc : public CNMFunc { public: DECLARE_NMFUNC( CreateChatRoom ) // call data CNMChatRoomInfo criRoomInfo; CNMChatRoomMemberInfo crmiMyInfo; TCHAR szServerAddr[ 32 ]; _UInt16_ uServerPort; // return data // NONE public: CNMCreateChatRoomFunc( void ); CNMCreateChatRoomFunc( _UInt32_ uRoomType, _UInt32_ uClubSerialNo, LPCTSTR szClubTitle, LPCTSTR szRoomTitle, _UInt32_ uLimitLevel, _UInt32_ uMaxSize, _UInt32_ uFlag, LPCTSTR szPassword, LPCTSTR szServerAddr, _UInt16_ uServerPort ); DECLARE_SERIALIZABLE }; class CNMCreateChatRoomExFunc : public CNMFunc { public: DECLARE_NMFUNC( CreateChatRoomEx ) // call data CNMChatRoomInfoEx criRoomInfo; CNMChatRoomMemberInfo crmiMyInfo; TCHAR szServerAddr[ 32 ]; _UInt16_ uServerPort; UINT32 uVirtualIdCode; // return data // NONE public: CNMCreateChatRoomExFunc( void ); CNMCreateChatRoomExFunc( _UInt32_ uRoomType, NMGuildKey uGuildKey, LPCTSTR szGuildTitle, LPCTSTR szRoomTitle, _UInt32_ uLimitLevel, _UInt32_ uMaxSize, _UInt32_ uFlag, LPCTSTR szPassword, LPCTSTR szServerAddr, _UInt16_ uServerPort, UINT32 uVirtualIdCode = 1 ); DECLARE_SERIALIZABLE }; class CNMJoinToChatRoomFunc : public CNMFunc { public: DECLARE_NMFUNC( JoinToChatRoom ) // call data CNMChatRoomInfo criRoomInfo; CNMChatRoomMemberInfo crmiMyInfo; TCHAR szServerAddr[ 32 ]; _UInt16_ uServerPort; // return data _UInt32_ uExistingSerialKey; _UInt32_ uCreatedSerialKey; public: CNMJoinToChatRoomFunc( void ); CNMJoinToChatRoomFunc( _UInt32_ uClubSerialNo, _UInt32_ uRoomSerialNo, LPCTSTR szPassword, LPCTSTR szServerAddr, _UInt16_ uServerPort ); DECLARE_SERIALIZABLE }; class CNMJoinToChatRoomExFunc : public CNMFunc { public: DECLARE_NMFUNC( JoinToChatRoomEx ) // call data CNMChatRoomInfoEx criRoomInfo; CNMChatRoomMemberInfo crmiMyInfo; TCHAR szServerAddr[ 32 ]; _UInt16_ uServerPort; UINT32 uVirtualIdCode; // return data _UInt32_ uExistingSerialKey; _UInt32_ uCreatedSerialKey; public: CNMJoinToChatRoomExFunc( void ); CNMJoinToChatRoomExFunc( NMGuildKey uGuildKey, _UInt32_ uRoomSerialNo, LPCTSTR szPassword, LPCTSTR szServerAddr, _UInt16_ uServerPort, _UInt32_ uFlag, UINT32 uVirtualIdCode ); DECLARE_SERIALIZABLE }; class CNMRequestSessionToOtherFunc : public CNMFunc { public: DECLARE_NMFUNC( RequestSessionToOther ) // call data NMSESSIONTYPE uSessionType; _UInt32_ uInviteMode; _UInt32_ uServingProcessID; NMVirtualKey keyVirtuality; TCHAR szRequestID[ LOGINID_SIZE ]; _UInt32_ uRequesteeGameCode; NMFilePathList aFilePath; _UInt32_ uAssocSerialKey; // return data _UInt32_ uExistingSerialKey; _UInt32_ uCreatedSerialKey; public: CNMRequestSessionToOtherFunc( void ); CNMRequestSessionToOtherFunc( NMSESSIONTYPE uSessionType, _UInt32_ uInviteMode, NMVirtualKey keyVirtuality, LPCTSTR szRequestID, _UInt32_ uRequesteeGameCode, NMFilePathList& aFileList ); CNMRequestSessionToOtherFunc( NMSESSIONTYPE uSessionType, _UInt32_ uInviteMode, NMVirtualKey keyVirtuality, LPCTSTR szRequestID, _UInt32_ uRequesteeGameCode, _UInt32_ uAssocSerialKey = 0 ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CreateChannel //----------------------------------------------------------------------------- class CNMCreateChannelFunc : public CNMFunc { public: DECLARE_NMFUNC( CreateChannel ) public: // call data // return data public: CNMCreateChannelFunc(); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // JoinChannel //----------------------------------------------------------------------------- class CNMJoinChannelFunc : public CNMFunc { public: DECLARE_NMFUNC( JoinChannel ) public: // call data UINT32 uRequestKey1; UINT32 uRequestKey2; StringZip< NXPASSPORT_SIZE > szPassport; StringZip< 256 > szServerAddr; UINT16 uServerPort; CNMClientChannelInfo clientChannelInfo; CNMChannelMemberInfo channelMemberInfo; BOOL bMonitorGuildOnlineInfo; // return data UINT32 uExistingSerialKey; UINT32 uCreatedSerialKey; public: CNMJoinChannelFunc(); DECLARE_SERIALIZABLE }; class CNMCRRegisterCallbackFunc : public CNMFunc { public: DECLARE_NMFUNC( CRRegisterCallback ) // call data HWND hWnd; _UInt32_ uMsg; // return data // NONE public: CNMCRRegisterCallbackFunc( void ); CNMCRRegisterCallbackFunc( _UInt32_ uSerialKey, HWND hWnd, _UInt32_ uMsg ); DECLARE_SERIALIZABLE }; class CNMCRCloseFunc : public CNMFunc { public: DECLARE_NMFUNC( CRClose ) // call data // NONE // return data // NONE public: CNMCRCloseFunc( void ); CNMCRCloseFunc( _UInt32_ uSerialKey ); DECLARE_SERIALIZABLE }; class CNMCRGetRoomInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( CRGetRoomInfo ) // call data // NONE // return data CNMChatRoomInfo criInfo; public: CNMCRGetRoomInfoFunc( void ); CNMCRGetRoomInfoFunc( _UInt32_ uSerialKey ); DECLARE_SERIALIZABLE }; class CNMCRGetRoomInfoExFunc : public CNMFunc { public: DECLARE_NMFUNC( CRGetRoomInfoEx ) // call data // NONE // return data CNMChatRoomInfoEx criInfo; public: CNMCRGetRoomInfoExFunc( void ); CNMCRGetRoomInfoExFunc( _UInt32_ uSerialKey ); DECLARE_SERIALIZABLE }; class CNMCRChangeRoomInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( CRChangeRoomInfo ) enum { kFlag_RoomTitle = ( 0x1 << 0 ), kFlag_LimitLevel = ( 0x1 << 1 ), kFlag_MaxSize = ( 0x1 << 2 ), kFlag_Flag = ( 0x1 << 3 ), kFlag_OwnerIdCode = ( 0x1 << 4 ), kFlag_Password = ( 0x1 << 5 ), kFlag_All = 0xFFFFFFFF, }; // call data _UInt32_ uChangeFlag; TCHAR szRoomTitle[ ROOMTITLE_SIZE ]; _UInt32_ uLimitLevel; _UInt32_ uMaxSize; _UInt32_ uFlag; _UInt64_ uOwnerIdCode; TCHAR szPassword[ ROOMPWD_SIZE ]; // return data // NONE public: CNMCRChangeRoomInfoFunc( void ); CNMCRChangeRoomInfoFunc( _UInt32_ uSerialKey, LPCTSTR szRoomTitle, _UInt32_* pLimitLevel, _UInt32_* pMaxSize, _UInt32_* pFlag, LPCTSTR szPassword, _UInt64_* pOwnerIdCode ); DECLARE_SERIALIZABLE }; class CNMCRChangeMyInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( CRChangeMyInfo ) // call data CNMChatRoomMemberInfo crmiInfo; // return data // NONE public: CNMCRChangeMyInfoFunc( void ); CNMCRChangeMyInfoFunc( _UInt32_ uSerialKey, CNMChatRoomMemberInfo& crmiInfo ); DECLARE_SERIALIZABLE }; class CNMCRGetMemberListFunc : public CNMFunc { public: DECLARE_NMFUNC( CRGetMemberList ) // call data // NONE // return data NMChatRoomMemberList aMembers; public: CNMCRGetMemberListFunc( void ); CNMCRGetMemberListFunc( _UInt32_ uSerialKey ); DECLARE_SERIALIZABLE }; class CNMCRInviteUserFunc : public CNMFunc { public: DECLARE_NMFUNC( CRInviteUser ) // call data TCHAR szToId[ 1024 ]; TCHAR szMessage[ 1024 ]; // return data // NONE public: CNMCRInviteUserFunc( void ); CNMCRInviteUserFunc( _UInt32_ uSerialKey, LPCTSTR szToId, LPCTSTR szMessage ); DECLARE_SERIALIZABLE }; class CNMCRBanUserFunc : public CNMFunc { public: DECLARE_NMFUNC( CRBanUser ) // call data _UInt64_ uIdCode; // return data // NONE public: CNMCRBanUserFunc( void ); CNMCRBanUserFunc( _UInt32_ uSerialKey, _UInt64_ uIdCode ); DECLARE_SERIALIZABLE }; class CNMCRSendChatMessageFunc : public CNMFunc { public: DECLARE_NMFUNC( CRSendChatMessage ) // call data _UInt64_ aToIdCode[ 10 ]; CNMChatMessage chatMsg; // return data // NONE public: CNMCRSendChatMessageFunc( void ); CNMCRSendChatMessageFunc( _UInt32_ uSerialKey, _UInt64_ aToIdCode[ 10 ], CNMChatMessage& chatMsg ); DECLARE_SERIALIZABLE }; class CNMCRGetMemberInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( CRGetMemberInfo ) enum { kType_NULL = 0, kType_FirstMember = 1, kType_MySelf = 2, kType_Joined = 3, kType_Banned = 4, kType_Leaved = 5, kType_InfoChanged = 6, }; // call data _UInt32_ uType; // NONE // return data CNMChatRoomMemberInfo crmiInfo; public: CNMCRGetMemberInfoFunc( void ); CNMCRGetMemberInfoFunc( _UInt32_ uSerialKey, _UInt32_ uType ); DECLARE_SERIALIZABLE }; class CNMGSRegisterCallbackFunc : public CNMFunc { public: DECLARE_NMFUNC( GSRegisterCallback ) // call data HWND hWnd; _UInt32_ uMsg; // return data // NONE public: CNMGSRegisterCallbackFunc( void ); CNMGSRegisterCallbackFunc( _UInt32_ uSerialKey, HWND hWnd, _UInt32_ uMsg ); DECLARE_SERIALIZABLE }; class CNMGSWantCloseFunc : public CNMFunc { public: DECLARE_NMFUNC( GSWantClose ) // call data BOOL bForceClose; // NONE // return data // NONE public: CNMGSWantCloseFunc( void ); CNMGSWantCloseFunc( _UInt32_ uSerialKey, BOOL bForceClose ); DECLARE_SERIALIZABLE }; class CNMGSGetSessionInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( GSGetSessionInfo ) // call data // NONE // return data CNMSessionInfo siInfo; NMSessionMemberList aMembers; public: CNMGSGetSessionInfoFunc( void ); CNMGSGetSessionInfoFunc( _UInt32_ uSerialKey ); DECLARE_SERIALIZABLE }; class CNMGSSetServingProcessIDFunc : public CNMFunc { public: DECLARE_NMFUNC( GSSetServingProcessID ) // call data _UInt32_ uServingProcessID; // return data // NONE public: CNMGSSetServingProcessIDFunc( void ); CNMGSSetServingProcessIDFunc( _UInt32_ uSerialKey, _UInt32_ uServingProcessID ); DECLARE_SERIALIZABLE }; class CNMGSGetMemberListFunc : public CNMFunc { public: DECLARE_NMFUNC( GSGetMemberList ) // call data // NONE // return data NMSessionMemberList aMembers; public: CNMGSGetMemberListFunc( void ); CNMGSGetMemberListFunc( _UInt32_ uSerialKey ); DECLARE_SERIALIZABLE }; class CNMGSGetInviteCandidateListFunc : public CNMFunc { public: DECLARE_NMFUNC( GSGetInviteCandidateList ) // call data // NONE // return data NMFriendList aCandidates; public: CNMGSGetInviteCandidateListFunc( void ); CNMGSGetInviteCandidateListFunc( _UInt32_ uSerialKey ); DECLARE_SERIALIZABLE }; class CNMGSInviteUserFunc : public CNMFunc { public: DECLARE_NMFUNC( GSInviteUser ) // call data NMFriendCode fcFriendCode; // return data // NONE public: CNMGSInviteUserFunc( void ); CNMGSInviteUserFunc( _UInt32_ uSerialKey, NMFriendCode fcFriendCode ); DECLARE_SERIALIZABLE }; class CNMGSInviteUserExFunc : public CNMFunc { public: DECLARE_NMFUNC( GSInviteUserEx ) // call data NMFriendKey keyFriend; // return data // NONE public: CNMGSInviteUserExFunc( void ); CNMGSInviteUserExFunc( _UInt32_ uSerialKey, NMFriendKey keyFriend ); DECLARE_SERIALIZABLE }; class CNMCSSendChatMessageFunc : public CNMFunc { public: DECLARE_NMFUNC( CSSendChatMessage ) // call data CNMChatMessage chatMsg; // return data // NONE public: CNMCSSendChatMessageFunc( void ); CNMCSSendChatMessageFunc( _UInt32_ uSerialKey, CNMChatMessage& chatMsg ); DECLARE_SERIALIZABLE }; class CNMFUDSGetFileEventFunc : public CNMFunc { public: DECLARE_NMFUNC( FUDSGetFileEvent ) // call data // NONE // return data NMFileEventList aEventList; public: CNMFUDSGetFileEventFunc( void ); CNMFUDSGetFileEventFunc( _UInt32_ uSerialKey ); DECLARE_SERIALIZABLE }; class CNMFUSSendFileFunc : public CNMFunc { public: DECLARE_NMFUNC( FUSSendFile ) // call data TCHAR szFilePath[ MAX_PATH ]; // return data _UInt32_ uEventId; public: CNMFUSSendFileFunc( void ); CNMFUSSendFileFunc( _UInt32_ uSerialKey, LPCTSTR szFilePath ); DECLARE_SERIALIZABLE }; class CNMFUSControlFunc : public CNMFunc { public: DECLARE_NMFUNC( FUSControl ) enum { kType_NULL = 0, kType_SendFileAgain = 1, kType_Cancel = 2, kType_Remove = 3, }; // call data _UInt32_ uType; _UInt32_ uEventId; // return data // NONE public: CNMFUSControlFunc( void ); CNMFUSControlFunc( _UInt32_ uSerialKey, _UInt32_ uType, _UInt32_ uEventId ); DECLARE_SERIALIZABLE }; class CNMFDSControlFunc : public CNMFunc { public: DECLARE_NMFUNC( FDSControl ) enum { kType_NULL = 0, kType_GetFile = 1, kType_Cancel = 2, kType_Remove = 3, }; // call data _UInt32_ uType; _UInt32_ uEventId; // return data // NONE public: CNMFDSControlFunc( void ); CNMFDSControlFunc( _UInt32_ uSerialKey, _UInt32_ uType, _UInt32_ uEventId ); DECLARE_SERIALIZABLE }; class CNMFDSGetDownloadDirFunc : public CNMFunc { public: DECLARE_NMFUNC( FDSGetDownloadDir ) // call data // NONE // return data TCHAR szDir[ MAX_PATH ]; public: CNMFDSGetDownloadDirFunc( void ); CNMFDSGetDownloadDirFunc( _UInt32_ uSerialKey ); DECLARE_SERIALIZABLE }; class CNMFDSSetDownloadDirFunc : public CNMFunc { public: DECLARE_NMFUNC( FDSSetDownloadDir ) // call data TCHAR szDir[ MAX_PATH ]; // return data // NONE public: CNMFDSSetDownloadDirFunc( void ); CNMFDSSetDownloadDirFunc( _UInt32_ uSerialKey, LPCTSTR szDir ); DECLARE_SERIALIZABLE }; class CNMWSSendWBMessageFunc : public CNMFunc { public: DECLARE_NMFUNC( WSSendWBMessage ) enum { kMaxDataLen = 32768, }; // call data _UInt32_ uContentId; _UInt32_ uDataLen; BYTE aData[ kMaxDataLen ]; // return data // NONE public: CNMWSSendWBMessageFunc( void ); CNMWSSendWBMessageFunc( _UInt32_ uSerialKey, _UInt32_ uContentId, const BYTE* aData, _UInt32_ uDataLen ); DECLARE_SERIALIZABLE }; class CNMWSGetAssocSerialKeyFunc : public CNMFunc { public: DECLARE_NMFUNC( WSGetAssocSerialKey ) // call data // return data _UInt32_ uAssocSerialKey; public: CNMWSGetAssocSerialKeyFunc( void ); CNMWSGetAssocSerialKeyFunc( _UInt32_ uSerialKey ); DECLARE_SERIALIZABLE }; class CNMCustomNotifyFunc : public CNMFunc { public: DECLARE_NMFUNC( CustomNotify ) // call data CNMCustomNotifyData cnData; // return data // NONE public: CNMCustomNotifyFunc( void ); CNMCustomNotifyFunc( UINT32 uType, LPCTSTR szArgument, UINT32 uPolicyFlag = CNMCustomNotifyData::kCustomNotifyPolicy_Default); CNMCustomNotifyFunc( CNMCustomNotifyData& cnData ); DECLARE_SERIALIZABLE }; class CNMChangeMyLevelFunc : public CNMFunc { public: DECLARE_NMFUNC( ChangeMyLevel ) // call data NMVirtualKey keyVirtual; _UInt32_ uLevel; UINT32 uLevelType; // return data // NONE public: CNMChangeMyLevelFunc( void ); CNMChangeMyLevelFunc( _UInt32_ uLevel, UINT32 uLevelType ); DECLARE_SERIALIZABLE }; class CNMRemoveMyVirtualUserFunc : public CNMFunc { public: DECLARE_NMFUNC( RemoveMyVirtualUser ) // call data NMVirtualKey keyVirtual; // return data // NONE public: CNMRemoveMyVirtualUserFunc( void ); CNMRemoveMyVirtualUserFunc( NMVirtualKey & keyVirtual ); DECLARE_SERIALIZABLE }; class CNMLoginPassportFunc : public CNMFunc { public: DECLARE_NMFUNC( LoginPassport ) // call data TCHAR szLoginId[ LOGINID_SIZE ]; TCHAR szPassword[ LOGINID_SIZE ]; _UInt32_ uGameCode; _UInt64_ uVersion; PBYTE pbyPassport[ PASSPORT_SIZE ]; INT32 cbyPassportLength; NMGameCode uLoginGameCode; // // ¸Þ½ÅÀú¼­¹ö·ÎºÎÅÍ Áö¿ø¹ÞÀ» ±â´É Ç÷¡±× ¼³Á¤ // UINT32 uSupportFlag; INT32 nRegionCode; // return data // NONE public: CNMLoginPassportFunc( void ); CNMLoginPassportFunc( LPCTSTR szLoginId, LPCTSTR szPassword, _UInt64_ uVersion, PBYTE pbyPassport, INT32 cbyPassportLength, NMGameCode uLoginGameCode, INT32 nRegionCode ); CNMLoginPassportFunc( LPCTSTR szLoginId, LPCTSTR szPassword, PBYTE pbyPassport, INT32 cbyPassportLength, UINT32 uSupportFlag, INT32 nRegionCode ); DECLARE_SERIALIZABLE }; class CNMLoginNexonPassportFunc : public CNMFunc { public: DECLARE_NMFUNC( LoginNexonPassport ) // call data TCHAR szPassport[ PASSPORT_SIZE ]; _UInt32_ uGameCode; _UInt64_ uVersion; NMGameCode uLoginGameCode; public: CNMLoginNexonPassportFunc( void ); CNMLoginNexonPassportFunc( LPCTSTR szPassport, _UInt64_ uVersion, NMGameCode uLoginGameCode = kGameCode_nexoncom ); DECLARE_SERIALIZABLE }; class CNMLoginMessengerFunc : public CNMFunc { public: DECLARE_NMFUNC( LoginMessenger ) // call data UINT32 uSupportFlag; // = kSupportFlag_FromGameCode // return data // NONE public: CNMLoginMessengerFunc(); CNMLoginMessengerFunc( UINT32 uSupportFlag ); DECLARE_SERIALIZABLE }; class CNMLogoutMessengerFunc : public CNMFunc { public: DECLARE_NMFUNC( LogoutMessenger ) // call data // NONE // return data // NONE public: CNMLogoutMessengerFunc(); DECLARE_SERIALIZABLE }; class CNMLoginAuthFunc : public CNMFunc { public: DECLARE_NMFUNC( LoginAuth ) enum LoginType { kLoginType_None, kLoginType_Passport, kLoginType_IDPassword, }; public: // call data UINT32 uLoginType; TCHAR szPassport[ PASSPORT_SIZE ]; TCHAR szNexonID[ LARGE_LOGINID_SIZE ]; TCHAR szPassword[ PASSWORD_SIZE ]; BOOL bSecondary; INT32 nRegionCode; TCHAR szMID[ MID_SIZE ]; UINT32 uFromSite; // return data INT32 nErrorCode; public: CNMLoginAuthFunc(); CNMLoginAuthFunc( LPCTSTR pszPassport, INT32 nRegionCode ); CNMLoginAuthFunc( LPCTSTR pszNexonID, LPCTSTR pszPassword, INT32 nRegionCode ); CNMLoginAuthFunc( LPCTSTR pszNexonID, LPCTSTR pszPassword, INT32 nRegionCode, LPCTSTR pszMID, UINT32 uFromSite ); DECLARE_SERIALIZABLE }; class CNMLoginAuthMatrixFunc : public CNMFunc { public: DECLARE_NMFUNC( LoginAuthMatrix ) public: // call data StringZip< PASSPORT_SIZE > szPassport; StringZip< MATRIXDATA_SIZE > szMatrixData; // return data INT32 nErrorCode; public: CNMLoginAuthMatrixFunc(); CNMLoginAuthMatrixFunc( LPCTSTR pszPassport, LPCTSTR pszMatrixData ); DECLARE_SERIALIZABLE }; class CNMGetGameTokenFunc : public CNMFunc { public: DECLARE_NMFUNC( GetGameToken ) public: // call data StringZip< SECUREDATA_SIZE > szSecureData; // return data INT32 nReplyCode; INT32 nSecureCode; public: CNMGetGameTokenFunc(); CNMGetGameTokenFunc( LPCTSTR pszSecureData ); DECLARE_SERIALIZABLE }; class CNMLogoutAuthFunc : public CNMFunc { public: DECLARE_NMFUNC( LogoutAuth ) public: // call data BOOL bApplyToAllSession; BOOL bSecondary; // return data // NONE public: CNMLogoutAuthFunc(); CNMLogoutAuthFunc( BOOL bApplyToAllSession, BOOL bSecondary ); DECLARE_SERIALIZABLE }; class CNMInitializeFunc : public CNMFunc { public: DECLARE_NMFUNC( Initialize ) public: // call data NMGameCode uGameCode; UINT32 uSupportFlag; // return data // NONE public: CNMInitializeFunc(); CNMInitializeFunc( NMGameCode uGameCode, UINT32 uSupportFlag ); DECLARE_SERIALIZABLE }; /////////////////////////////////////////////////////////////////////////////// // // Character functions // /////////////////////////////////////////////////////////////////////////////// class CNMCharacterLoginFunc : public CNMFunc { public: DECLARE_NMFUNC( CharacterLogin ) // call data TCHAR szNickname[ NICKNAME_SIZE ]; NMVirtualKey keyUser; INT32 nServerCode; // return data // NONE public: CNMCharacterLoginFunc( void ); CNMCharacterLoginFunc( LPCTSTR szNickname, _UInt32_ uVirtualIdCode, INT32 nServerCode ); DECLARE_SERIALIZABLE }; class CNMCharacterLogoutFunc : public CNMFunc { public: DECLARE_NMFUNC( CharacterLogout ) // call data TCHAR szNickname[ NICKNAME_SIZE ]; NMVirtualKey keyUser; INT32 nServerCode; // return data // NONE public: CNMCharacterLogoutFunc( void ); CNMCharacterLogoutFunc( LPCTSTR szNickname, _UInt32_ uVirtualIdCode, INT32 nServerCode ); DECLARE_SERIALIZABLE }; class CNMCharacterRemoveFunc : public CNMFunc { public: DECLARE_NMFUNC( CharacterRemove ) // call data NMVirtualKey keyVirtual; TCHAR szNickname[ NICKNAME_SIZE ]; INT32 nServerCode; // return data // NONE public: CNMCharacterRemoveFunc( void ); CNMCharacterRemoveFunc( NMVirtualKey keyVirtual, LPCTSTR szNickname, INT32 nServerCode ); DECLARE_SERIALIZABLE }; class CNMCharacterChangeNameFunc : public CNMFunc { public: DECLARE_NMFUNC( CharacterChangeName ) // call data NMVirtualKey keyVirtual; TCHAR szNickname[ NICKNAME_SIZE ]; INT32 nServerCode; // return data // nothing... public: CNMCharacterChangeNameFunc( void ); CNMCharacterChangeNameFunc( NMVirtualKey keyVirtual, LPCTSTR szNickname, INT32 nServerCode ); DECLARE_SERIALIZABLE }; class CNMCharacterSyncFunc : public CNMFunc { public: DECLARE_NMFUNC( CharacterSync ) // call data TCHAR szNickname[ NICKNAME_SIZE ]; NMVirtualKey keyUser; INT32 nServerCode; INT32 nSyncType; // return data // NONE public: CNMCharacterSyncFunc( void ); CNMCharacterSyncFunc( LPCTSTR szNickname, _UInt32_ uVirtualIdCode, INT32 nServerCode, INT32 nSyncType = 0); DECLARE_SERIALIZABLE }; class CNMCharacterLogin64Func : public CNMFunc { public: DECLARE_NMFUNC( CharacterLogin64 ) // call data TCHAR szNickname[ NICKNAME_SIZE ]; UINT64 uVirtualIDCode; INT32 nServerCode; // return data // NONE public: CNMCharacterLogin64Func( void ); CNMCharacterLogin64Func( LPCTSTR szNickname, _UInt64_ uVirtualIdCode, INT32 nServerCode ); DECLARE_SERIALIZABLE }; class CNMCharacterLogout64Func : public CNMFunc { public: DECLARE_NMFUNC( CharacterLogout64 ) // call data TCHAR szNickname[ NICKNAME_SIZE ]; UINT64 uVirtualIDCode; INT32 nServerCode; // return data // NONE public: CNMCharacterLogout64Func( void ); CNMCharacterLogout64Func( LPCTSTR szNickname, _UInt64_ uVirtualIdCode, INT32 nServerCode ); DECLARE_SERIALIZABLE }; class CNMCharacterRemove64Func : public CNMFunc { public: DECLARE_NMFUNC( CharacterRemove64 ) // call data //NMVirtualKey keyVirtual; TCHAR szNickname[ NICKNAME_SIZE ]; UINT64 uVirtualIDCode; INT32 nServerCode; // return data // NONE public: CNMCharacterRemove64Func( void ); CNMCharacterRemove64Func( LPCTSTR szNickname, _UInt64_ uVirtualIdCode, INT32 nServerCode ); DECLARE_SERIALIZABLE }; class CNMCharacterChangeName64Func : public CNMFunc { public: DECLARE_NMFUNC( CharacterChangeName64 ) // call data TCHAR szNickname[ NICKNAME_SIZE ]; UINT64 uVirtualIDCode; INT32 nServerCode; // return data // nothing... public: CNMCharacterChangeName64Func( void ); CNMCharacterChangeName64Func( LPCTSTR szNickname, _UInt64_ uVirtualIdCode, INT32 nServerCode ); DECLARE_SERIALIZABLE }; class CNMCharacterSync64Func : public CNMFunc { public: DECLARE_NMFUNC( CharacterSync64 ) // call data TCHAR szNickname[ NICKNAME_SIZE ]; UINT64 uVirtualIDCode; INT32 nServerCode; INT32 nSyncType; // return data // NONE public: CNMCharacterSync64Func( void ); CNMCharacterSync64Func( LPCTSTR szNickname, _UInt64_ uVirtualIdCode, INT32 nServerCode, INT32 nSyncType = 0); DECLARE_SERIALIZABLE }; /////////////////////////////////////////////////////////////////////////////// // // Channel functions // /////////////////////////////////////////////////////////////////////////////// //----------------------------------------------------------------------------- // CHClose //----------------------------------------------------------------------------- class CNMCHCloseFunc : public CNMFunc { public: DECLARE_NMFUNC( CHClose ) public: // call data // NONE // return data // NONE public: CNMCHCloseFunc(); CNMCHCloseFunc( UINT32 uSerialKey ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CHGetChannelInfo //----------------------------------------------------------------------------- class CNMCHGetChannelInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( CHGetChannelInfo ) public: // call data // NONE // return data CNMClientChannelInfo clientChannelInfo; public: CNMCHGetChannelInfoFunc(); CNMCHGetChannelInfoFunc( UINT32 uSerialKey ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CHChangeChannelInfo //----------------------------------------------------------------------------- class CNMCHChangeChannelInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( CHChangeChannelInfo ) public: // call data CNMClientChannelInfo clientChannelInfo; // return data // NONE public: CNMCHChangeChannelInfoFunc(); CNMCHChangeChannelInfoFunc( UINT32 uSerialKey, CNMClientChannelInfo const & clientChannelInfo ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CHGetMemberInfoList //----------------------------------------------------------------------------- class CNMCHGetMemberInfoListFunc : public CNMFunc { public: DECLARE_NMFUNC( CHGetMemberInfoList ) public: // call data // NONE // return data NMChannelMemberInfoList aMember; public: CNMCHGetMemberInfoListFunc(); CNMCHGetMemberInfoListFunc( UINT32 uSerialKey ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CHChangeMyInfo //----------------------------------------------------------------------------- class CNMCHChangeMyInfoFunc : public CNMFunc { public: DECLARE_NMFUNC( CHChangeMyInfo ) public: // call data CNMChannelMemberInfo channelMemberInfo; // return data // NONE public: CNMCHChangeMyInfoFunc(); CNMCHChangeMyInfoFunc( UINT32 uSerialKey ); CNMCHChangeMyInfoFunc( UINT32 uSerialKey, CNMChannelMemberInfo const & channelMemberInfo ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CHInviteUser //----------------------------------------------------------------------------- class CNMCHInviteUserFunc : public CNMFunc { public: DECLARE_NMFUNC( CHInviteUser ) public: // call data StringZip< TARGETID_SIZE > szTargetIds; StringZip< NOTEMSG_SIZE > szMessage; // return data // NONE public: CNMCHInviteUserFunc(); CNMCHInviteUserFunc( UINT32 uSerialKey, LPCTSTR pszTargetIds, LPCTSTR pszMessage ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CHBanUser //----------------------------------------------------------------------------- class CNMCHBanUserFunc : public CNMFunc { public: DECLARE_NMFUNC( CHBanUser ) public: // call data INT32 nNexonSN; // return data // NONE public: CNMCHBanUserFunc(); CNMCHBanUserFunc( UINT32 uSerialKey, INT32 nNexonSN ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CHSendChannelMessage //----------------------------------------------------------------------------- class CNMCHSendChannelMessageFunc : public CNMFunc { public: DECLARE_NMFUNC( CHSendChannelMessage ) public: // call data CNMChannelMessage channelMessage; // return data // NONE public: CNMCHSendChannelMessageFunc(); CNMCHSendChannelMessageFunc( UINT32 uSerialKey ); CNMCHSendChannelMessageFunc( UINT32 uSerialKey, CNMChannelMessage const & channelMessage ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CNMP2PLoginFunc //----------------------------------------------------------------------------- class CNMP2PLoginFunc : public CNMFunc { public: DECLARE_NMFUNC( P2PLogin ) public: // call data StringZip< NXPASSPORT_SIZE > szNexonPassport; // return data NMP2PErrorCode nErrorCode; public: CNMP2PLoginFunc(); CNMP2PLoginFunc( LPCTSTR pszNexonPassport ); CNMP2PLoginFunc( NMP2PErrorCode nErrorCode ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CNMP2PSendDataFunc //----------------------------------------------------------------------------- class CNMP2PSendDataFunc : public CNMFunc { public: DECLARE_NMFUNC( P2PSendData ) public: // call data CNMP2PMessage message; BOOL bCustomSerialKey; UINT32 ttl; // return data NMP2PErrorCode nErrorCode; UINT32 uP2PSerialKey; public: CNMP2PSendDataFunc(); CNMP2PSendDataFunc( UINT32 uSerialKey, CNMP2PMessage const & message, UINT32 ttl ); CNMP2PSendDataFunc( CNMP2PMessage const & message, UINT32 ttl ); CNMP2PSendDataFunc( NMP2PErrorCode nErrorCode ); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CNMP2PLogoutFunc //----------------------------------------------------------------------------- class CNMP2PLogoutFunc : public CNMFunc { public: DECLARE_NMFUNC( P2PLogout ) public: // call data // NONE // return data NMP2PErrorCode nErrorCode; public: CNMP2PLogoutFunc(); DECLARE_SERIALIZABLE }; //----------------------------------------------------------------------------- // CNMP2PMultiSendDataFunc //----------------------------------------------------------------------------- class CNMP2PMultiSendDataFunc : public CNMFunc { public: DECLARE_NMFUNC( P2PMultiSendData ) public: // call data NMP2PKey sender; NMP2PKey receivers[ P2PRECEIVERS_SIZE ]; UINT32 receiversSize; BYTE data[ P2PDATA_SIZE ]; UINT32 dataSize; UINT32 ttl; // return data NMP2PErrorCode nErrorCode; UINT32 uP2PSerialKey; public: CNMP2PMultiSendDataFunc(); CNMP2PMultiSendDataFunc( NMP2PKey const & sender, NMP2PKey const * receivers, UINT32 receiversSize, BYTE const * data, UINT32 dataSize, UINT32 ttl ); DECLARE_SERIALIZABLE }; /////////////////////////////////////////////////////////////////////////////// // // GameLog functions // /////////////////////////////////////////////////////////////////////////////// class CNMGameLogInitializeFunc : public CNMFunc { public: DECLARE_NMFUNC( GameLogInitialize ) // call data TCHAR szGameName[ 32 ]; TCHAR szBaseURL[ 256 ]; TCHAR szSessionID[ 32 ]; // return data // NONE public: CNMGameLogInitializeFunc( void ); CNMGameLogInitializeFunc( LPCTSTR szGameName, LPCTSTR szBaseURL, LPCTSTR szSessionID ); DECLARE_SERIALIZABLE }; class CNMGameLogFinalizeFunc : public CNMFunc { public: DECLARE_NMFUNC( GameLogFinalize ) // call data // NONE // return data // NONE public: CNMGameLogFinalizeFunc( void ); DECLARE_SERIALIZABLE }; class CNMGameLogWriteStageLogFunc : public CNMFunc { public: DECLARE_NMFUNC( GameLogWriteStageLog ) // call data _SInt32_ nStage; TCHAR szComment[ 256 ]; // return data // NONE public: CNMGameLogWriteStageLogFunc( void ); CNMGameLogWriteStageLogFunc( _SInt32_ nStage, LPCTSTR szComment ); DECLARE_SERIALIZABLE }; class CNMGameLogWriteErrorLogFunc : public CNMFunc { public: DECLARE_NMFUNC( GameLogWriteErrorLog ) // call data _SInt32_ nErrorType; TCHAR szComment[ 256 ]; // return data // NONE public: CNMGameLogWriteErrorLogFunc( void ); CNMGameLogWriteErrorLogFunc( _SInt32_ nErrorType, LPCTSTR szComment ); DECLARE_SERIALIZABLE }; class CNMGameLogGetSessionIDFunc : public CNMFunc { public: DECLARE_NMFUNC( GameLogGetSessionID ) // call data // NONE // return data TCHAR szSessionID[ 32 ]; public: CNMGameLogGetSessionIDFunc( void ); DECLARE_SERIALIZABLE }; /////////////////////////////////////////////////////////////////////////////// // // PlayFeed functions // /////////////////////////////////////////////////////////////////////////////// class CNMPlayFeedWritePlayLogFunc : public CNMFunc { public: DECLARE_NMFUNC( PlayFeedWritePlayLog ) // call data UINT32 uFeedCategory; UINT32 uFeedTypeNo; TCHAR szPlayLog[ 4096 ]; // return data // NONE public: CNMPlayFeedWritePlayLogFunc( void ); CNMPlayFeedWritePlayLogFunc( UINT32 uFeedCategory, UINT32 uFeedTypeNo, LPCTSTR szPlayLog ); DECLARE_SERIALIZABLE }; class CNMPlayFeedPublishPlayFeedFunc : public CNMFunc { public: DECLARE_NMFUNC( PlayFeedPublishPlayFeed ) // call data UINT32 uLogType; UINT32 uFeedCategory; UINT32 uFeedTypeNo; TCHAR szPlayLog[ 4096 ]; // return data // NONE public: CNMPlayFeedPublishPlayFeedFunc( void ); CNMPlayFeedPublishPlayFeedFunc( UINT32 uLogType, UINT32 uFeedCategory, UINT32 uFeedTypeNo, LPCTSTR szPlayLog ); DECLARE_SERIALIZABLE }; //========================================= // Etc. //========================================= #define BEGIN_NMFUNC_MAP switch ( pFunc->GetCode() ) { #define END_NMFUNC_MAP default:break; } #define ON_NMFUNC( funcClass, funcHandler ) \ case funcClass::kCode: pFunc->bSuccess = funcHandler( ( funcClass* )pFunc ); pFunc->SetHandled(); break; class CNMFuncReceiver { public: CNMFuncReceiver() {}; virtual ~CNMFuncReceiver() {}; virtual BOOL OnNMFuncCall( CNMFunc* pFunc ) { UNREFERENCED_PARAMETER(pFunc); return FALSE; } inline BOOL CallByNMFunc( CNMFunc* pFunc, BOOL bReference = FALSE ) { if ( pFunc != NULL ) { BOOL bResult = this->OnNMFuncCall( pFunc ); if ( !bReference ) delete pFunc; return bResult; } return FALSE; } }; namespace CNMUtil { CNMFunc* CreateFuncFromCode( _UInt32_ uCode ); }; #endif // #ifndef __NMFUNCTIONOBJECT_H_2D622A4E_137B_4150_95A1_A97D3E9CC46C__