#pragma once /************************************************************************************************** ÀÛ¼ºÀÏ: 2008-07-08 ¼³¸í: ¼¥ ¼­¹ö¸¦ »ç¿ëÇϴ Ŭ¶óÀÌ¾ðÆ®¿¡°Ô ¼ö½ÅµÈ ÆÐŶÀ» Àü´ÞÇØ ÁÖ±â À§ÇÑ À̺¥Æ® °´Ã¼ À̺¥Æ®¸¦ ¹Þ´ÂÂÊ(¼¥Å¬¶óÀ̾ðÆ®)¿¡¼­ »ó¼Ó¹Þ¾Æ »ç¿ëÇØ¾ß ÇÑ´Ù. **************************************************************************************************/ #include "ClientSession.h" #include class CShopEventHandler : public CClientSession { public: CShopEventHandler(void); virtual ~CShopEventHandler(void); // ÃʱâÈ­ ÇÔ¼ö (ÇÁ·Î±×·¥ ½ÇÇàÇϰí Çѹø¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù.) bool CreateSession(WBANetwork::LPFN_ErrorHandler errhandler = NULL); // ij½ÃÁ¶È¸ // ij½ÃÁ¶È¸ : MU_KR, BT_KR, R2_KR, SUN_KR bool InquireCash( long GameCode, BYTE ViewType, DWORD AccountSeq, bool SumOnly, long MileageSection); // ij½ÃÁ¶È¸ : MU_GB, SUN_GB bool InquireCash( BYTE ViewType, DWORD AccountSeq, long GameCode, bool SumOnly, long MileageSection); // ij½ÃÁ¶È¸ : SUN_CN, SUN_RU, SUN_JP, BT_TH, BT_CN, MU_JP(GameChu, GameOn), MU_VN, MU_TW bool InquireCash( long GameCode, ShopProtocol::PaymentType PaymentType, long AccountSeq, int USN, BYTE ViewType, long MileageSection, bool SumOnly); // ij½ÃÁ¶È¸ : MU_TH bool InquireCash( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], BYTE ViewType, long MileageSection, bool SumOnly); // ij½ÃÁ¶È¸ : BT_CNL bool InquireCash( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], BYTE ViewType, long MileageSection, bool SumOnly, WCHAR strMemberNo[MAX_CHANNELING_LENGTH]); // »óǰ±¸¸Å // [deprecated] - [AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ±¸¸Å : MU_KR, BT_KR, R2_KR, SUN KR bool BuyProduct( long GameCode, DWORD AccountSeq, long PackageProductSeq, long ProductDisplaySeq, long SalesZone, long PriceSeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // [AccessIP Ãß°¡ ¹öÀü] // »óǰ±¸¸Å : MU_KR, BT_KR, R2_KR, SUN KR bool BuyProduct( long GameCode, DWORD AccountSeq, long PackageProductSeq, long ProductDisplaySeq, long SalesZone, long PriceSeq, long Class, long Level, DWORD AccessIP, // <----- AccessIP Ãß°¡ ¹öÀü WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // [deprecated] - [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå bool BuyProduct( DWORD AccountSeq, long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, int CashTypeCode); // [deprecated] - [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå bool BuyProduct( DWORD AccountSeq, long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, int CashTypeCode, bool DeductMileageFlag); // <----- DeductMileageFlag Ãß°¡ // [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] // »óǰ±¸¸Å : MU_GB, SUN_GB bool BuyProduct( DWORD AccountSeq, long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, int CashTypeCode, bool DeductMileageFlag, // <----- DeductMileageFlag Ãß°¡ DWORD AccessIP); // »óǰ±¸¸Å : SUN_CN, SUN_RU, SUN_JP, MU_JP(GameChu, GameOn), MU_VN, MU_TW bool BuyProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, int USN, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, DWORD dwIPAddress, bool DeductMileageFlag); // »óǰ±¸¸Å : BT_TH, BT_CN bool BuyProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, int USN, // BT_CN : tencent qq °èÁ¤¹øÈ£ long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, DWORD dwIPAddress, bool DeductMileageFlag, double ItemUniqueID); // OnBuyProduct·Î µ¹·ÁÁÜ // »óǰ±¸¸Å : MU_TH bool BuyProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag); // [deprecated] - [AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ±¸¸Å : BT_CNL bool BuyProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag, WCHAR strMemberNo[MAX_CHANNELING_LENGTH]); // [AccessIP Ãß°¡ ¹öÀü] // »óǰ±¸¸Å : BT_CNL bool BuyProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag, WCHAR strMemberNo[MAX_CHANNELING_LENGTH], DWORD AccessIP); // <----- AccessIP Ãß°¡ ¹öÀü // »óǰ¼±¹° // [deprecated] - [AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ ¼±¹° : MU_KR, BT_KR, R2_KR, SUN_KR bool GiftProduct( long GameCode, DWORD SenderSeq, long SenderServerIndex, WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], DWORD ReceiverSeq, long ReceiverServerIndex, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq); // [AccessIP Ãß°¡ ¹öÀü] // »óǰ¼±¹° : MU_KR, BT_KR, R2_KR, SUN_KR bool GiftProduct( long GameCode, DWORD SenderSeq, long SenderServerIndex, WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], DWORD ReceiverSeq, long ReceiverServerIndex, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD AccessIP); // <----- AccessIP Ãß°¡ ¹öÀü // [deprecated] - [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ¼±¹° : MU_GB bool GiftProduct( DWORD SenderAccountSeq, WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], long SenderServerIndex, DWORD ReceiverAccountSeq, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR SendMessage[MAX_MESSAGE_LENGTH], long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, int CashTypeCode); // [deprecated] - [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ¼±¹° : MU_GB, SUN_GB bool GiftProduct( DWORD SenderAccountSeq, WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], long SenderServerIndex, DWORD ReceiverAccountSeq, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR SendMessage[MAX_MESSAGE_LENGTH], long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, int CashTypeCode, bool DeductMileageFlag); // <----- DeductMileageFlag Ãß°¡ // [DeductMileageFlag & AccessIP Ãß°¡ ¹öÀü] // »óǰ¼±¹° : MU_GB, SUN_GB bool GiftProduct( DWORD SenderAccountSeq, WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], long SenderServerIndex, DWORD ReceiverAccountSeq, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR SendMessage[MAX_MESSAGE_LENGTH], long GameCode, long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, int CashTypeCode, bool DeductMileageFlag, // <----- DeductMileageFlag Ãß°¡ DWORD AccessIP); // <----- AccessIP Ãß°¡(client ip) // »óǰ¼±¹° : SUN_CN, SUN_RU, SUN_JP, MU_JP(GameChu, GameOn), MU_VN, MU_TW bool GiftProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, int USN, WCHAR CharName[MAX_CHARACTERID_LENGTH], long ServerIndex, DWORD ReceiverAccountSeq, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD dwIPAddress, bool DeductMileageFlag); // »óǰ¼±¹° : BT_TH, BT_CN bool GiftProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD SenderAccountSeq, int USN, // BT_CN : tencent qq °èÁ¤¹øÈ£ WCHAR SenderAccountID[MAX_ACCOUNTID_LENGTH], WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], long SenderServerIndex, DWORD ReceiverAccountSeq, WCHAR ReceiverAccountID[MAX_ACCOUNTID_LENGTH], WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, long ReceiverClass, // <-- º¸°üÇÔ »ç¿ëÀ» ó¸®ÇØÁÖ±â À§ÇØ ÇÊ¿ä long ReceiverLevel, // <-- º¸°üÇÔ »ç¿ëÀ» ó¸®ÇØÁÖ±â À§ÇØ ÇÊ¿ä WCHAR ReceiverRank[MAX_RANK_LENGTH], // <-- º¸°üÇÔ »ç¿ëÀ» ó¸®ÇØÁÖ±â À§ÇØ ÇÊ¿ä WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD IPAddress, bool DeductMileageFlag); // »óǰ¼±¹° : MU_TH bool GiftProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], WCHAR CharName[MAX_CHARACTERID_LENGTH], long ServerIndex, DWORD ReceiverAccountSeq, char ReceiverAccountID[MAX_ACCOUNTID_LENGTH], WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag); // [deprecated] - [AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå // »óǰ¼±¹° : BT_CNL bool GiftProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], WCHAR CharName[MAX_CHARACTERID_LENGTH], long ServerIndex, DWORD ReceiverAccountSeq, char ReceiverAccountID[MAX_ACCOUNTID_LENGTH], WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag, WCHAR strMemberNo[MAX_CHANNELING_LENGTH]); // [AccessIP Ãß°¡ ¹öÀü] // »óǰ¼±¹° : BT_CNL bool GiftProduct( long GameCode, ShopProtocol::PaymentType PaymentType, DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], WCHAR CharName[MAX_CHARACTERID_LENGTH], long ServerIndex, DWORD ReceiverAccountSeq, char ReceiverAccountID[MAX_ACCOUNTID_LENGTH], WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], long ReceiverServerIndex, WCHAR Message[MAX_MESSAGE_LENGTH], long PackageProductSeq, long PriceSeq, long SalesZone, long ProductDisplaySeq, DWORD dwIPAddress, char RefKey[MAX_TYPENAME_LENGTH], bool DeductMileageFlag, WCHAR strMemberNo[MAX_CHANNELING_LENGTH], DWORD AccessIP); // °øÅë ¼­ºñ½º // »óǰ ¼¥ ½ºÅ©¸³Æ® ÃֽйöÀü Á¤º¸ Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireSalesZoneScriptVersion( long GameCode, long SalesZone); // ¹è³Ê ½ºÅ©¸³Æ® ÃֽйöÀü Á¤º¸ Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireBannerZoneScriptVersion( long GameCode, long BannerZone); // [deprecated] ij½Ã¼±¹° : ¸ðµç °ÔÀÓ, [AccessIP Ãß°¡ ¹öÀü] »ç¿ë ±ÇÀå bool GiftCash( DWORD SenderAccountSeq, long SendServerIndex, WCHAR SendCharName[MAX_CHARACTERID_LENGTH], DWORD ReceiverAccountSeq, long ReceiverServerIndex, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], WCHAR Message[MAX_MESSAGE_LENGTH], double CashValue, long GameCode); // ij½Ã¼±¹° : ¸ðµç °ÔÀÓ, [AccessIP Ãß°¡ ¹öÀü] bool GiftCash( DWORD SenderAccountSeq, long SendServerIndex, WCHAR SendCharName[MAX_CHARACTERID_LENGTH], DWORD ReceiverAccountSeq, long ReceiverServerIndex, WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], WCHAR Message[MAX_MESSAGE_LENGTH], double CashValue, long GameCode, DWORD AccessIP); // <----- AccessIP Ãß°¡ ¹öÀü // »óǰ ±¸¸Å/¼±¹° °¡´É ¿©ºÎ Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireBuyGiftPossibility( DWORD AccountSeq, long GameCode); // À̺¥Æ® »óǰ ¸ñ·Ï Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireEventProductList( long GameCode, DWORD AccountSeq, long SalesZone, long ProductDisplaySeq); // Àü½Ã »óǰ ÀÜ¿© °³¼ö Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireProductLeftCount( long GameCode, long PackageSeq); // [deprecated] º¸°üÇÔ ¸®½ºÆ® Á¶È¸ : ¸ðµç °ÔÀÓ, InquireStorageListEx() »ç¿ë ±ÇÀå bool InquireStorageList( DWORD AccountSeq, long GameCode, long SalesZone); // [deprecated] º¸°üÇÔ ¸®½ºÆ® ÆäÀÌÁö Á¶È¸ : ¸ðµç °ÔÀÓ, InquireStorageListPageEx() »ç¿ë ±ÇÀå bool InquireStorageListPage( DWORD AccountSeq, int GameCode, int SalesZone, char StorageType, int NowPage, int PageSize); // [deprecated] º¸°üÇÔ ¸®½ºÆ® ÆäÀÌÁö Á¶È¸(¼±¹° ¸Þ½ÃÁö Á¦¿Ü) : ¸ðµç °ÔÀÓ, InquireStorageListPageNoGiftMessageEx() »ç¿ë ±ÇÀå bool InquireStorageListPageNoGiftMessage( DWORD AccountSeq, int GameCode, int SalesZone, char StorageType, int NowPage, int PageSize); // º¸°üÇÔ ¸®½ºÆ®¸¦ Á¶È¸(¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ bool InquireStorageListEx( DWORD AccountSeq, long GameCode, long SalesZone); // º¸°üÇÔ ¸®½ºÆ® ÆäÀÌÁö¸¦ Á¶È¸(¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ bool InquireStorageListPageEx( DWORD AccountSeq, int GameCode, int SalesZone, char StorageType, int NowPage, int PageSize); // º¸°üÇÔ ¸®½ºÆ® ÆäÀÌÁö¸¦ Á¶È¸ÇÑ´Ù(¼±¹° ¸Þ½ÃÁö Á¦¿Ü, ¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ bool InquireStorageListPageNoGiftMessageEx( DWORD AccountSeq, int GameCode, int SalesZone, char StorageType, int NowPage, int PageSize); // º¸°üÇÔ »óǰ »ç¿ë : ¸ðµç °ÔÀÓ bool UseStorage( DWORD AccountSeq, long GameCode, DWORD IPAddress, long StorageSeq, long StorageItemSeq, char StorageItemType, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // º¸°üÇÔ »óǰ »ç¿ë EX : SUN_GB // °á°ú·Î CashTypeÀ» Ãß°¡ ¸®ÅÏÇÔ bool UseStorageEx( DWORD AccountSeq, long GameCode, DWORD IPAddress, long StorageSeq, long StorageItemSeq, char StorageItemType, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // º¸°üÇÔ »óǰ »ç¿ë EX : SUN_CN // °á°ú·Î DeductMileageFlag¸¦ Ãß°¡ ¸®ÅÏÇÔ. (false : ij½Ã»óǰ(0), true : ¸¶Àϸ®Áö »óǰ(1)) bool UseStorageExDeductMileageFlag( DWORD AccountSeq, long GameCode, DWORD IPAddress, long StorageSeq, long StorageItemSeq, char StorageItemType, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // º¸°üÇÔ »óǰ »ç¿ëÇϱ⠷ѹé : ¸ðµç °ÔÀÓ bool RollbackUseStorage( DWORD AccountSeq, long GameCode, long StorageSeq, long StorageItemSeq); // º¸°üÇÔ »óǰ ¹ö¸² : ¸ðµç °ÔÀÓ bool ThrowStorage( DWORD AccountSeq, long GameCode, long StorageSeq, long StorageItemSeq, char StorageItemType); // ¸¶Àϸ®Áö ¼ÒÁø : ¸ðµç °ÔÀÓ bool MileageDeduct( DWORD AccountSeq, long GameCode, long DeductCategory, long MileageSection, long MileageDeductPoint, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // ¸¶Àϸ®Áö Àû¸³ : ¸ðµç °ÔÀÓ bool MileageSave( DWORD AccountSeq, long GameCode, long MileageType, long MileageSection, long MileagePoint, long Class, long Level, WCHAR CharName[MAX_CHARACTERID_LENGTH], WCHAR Rank[MAX_RANK_LENGTH], long ServerIndex); // ½Ç½Ã°£ ¸¶Àϸ®Áö Àû¸³ : ¸ðµç °ÔÀÓ bool MileageLiveSaveUp( DWORD AccountSeq, long GameCode, long MileageSection, long SourceType); // ¾ÆÀÌÅÛ ½Ã¸®¾ó ÄÚµå ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ bool ItemSerialUpdate( DWORD AccountSeq, long GameCode, long StorageSeq, long StorageItemSeq, INT64 InGameUseCode); // ÀΰÔÀÓ Æ÷ÀÎÆ® À¯Çüº° Áö±Þ ÆÛ¼¾Æ® Á¶È¸ : ¸ðµç °ÔÀÓ bool InquireInGamePointValue( long GameCode, long ServerType, long AccessType); // ij½ÃÂ÷°¨ // ÇØ¿Ü ºô¸µ½Ã½ºÅÛ ¿¬µ¿½Ã Â÷°¨¸¸À» È£Ãâ : BT_TH bool DeductCashOutbound( long GameCode, // °ÔÀÓÄÚµå ShopProtocol::PaymentType PaymentType, // °áÁ¦ ŸÀÔ DWORD TransactionID, // Æ®·£Àè¼Ç ID : ºñµ¿±â Åë½ÅÀ» À§ÇÔ DWORD AccountSeq, // °èÁ¤¼ø¹ø WCHAR AccountID[MAX_ACCOUNTID_LENGTH], // °èÁ¤ID WCHAR CharName[MAX_CHARNAME_LENGTH], // ij¸¯ÅÍ ¸í DWORD AccessIP, // Ŭ¶óÀ̾ðÆ®IP DWORD DeductPrice, // Â÷°¨ÇÒ °¡°Ý(À̰ÍÀÌ ÇÙ½É!) DWORD ItemID, // ¾ÆÀÌÅÛ ID DWORD ItemType, // ¾ÆÀÌÅÛ Type WCHAR ItemName[MAX_PRODUCTNAME_LENGTH], // ¾ÆÀÌÅÛ À̸§ DWORD Period, // ÁÖ±â : ¹Þ±â¸¸ ÇÏ°í °á°ú·Î µ¹·ÁÁÜ double ItemUniqueID); // ¾ÆÀÌÅÛ À¯´ÏÅ© ID : ¹Þ±â¸¸ ÇÏ°í °á°ú·Î µ¹·ÁÁÜ // ÇØ¿Ü ºô¸µ½Ã½ºÅÛ ¿¬µ¿½Ã Â÷°¨¿¡ ´ëÇÑ ·Ñ¹é : BT_TH bool RollbackDeductCashOutbound( long GameCode, // °ÔÀÓÄÚµå ShopProtocol::PaymentType PaymentType, // °áÁ¦ ŸÀÔ DWORD TransactionID, // Æ®·£Àè¼Ç ID : ºñµ¿±â Åë½ÅÀ» À§ÇÔ DWORD AccountSeq, // °èÁ¤¼ø¹ø INT64 DeductNo); // OnDeductCashOutbound()¿¡¼­ ¸®ÅϹÞÀº Â÷°¨¹øÈ£(DeductNo) // ÇØ¿Ü ºô¸µ½Ã½ºÅÛ ¿¬µ¿½Ã Â÷°¨¸¸À» È£Ãâ : BT_CN // ÁöÁ¤µÈ TimeOut ¾È¿¡ CommitOrRollbackDeductCashOutbound() ÀÇ IsCommit¿¡ true·Î È£ÃâÇØÁà¾ß ÇÔ bool DeductCashOutbound( long GameCode, // °ÔÀÓÄÚµå ShopProtocol::PaymentType PaymentType, // °áÁ¦ ŸÀÔ DWORD TransactionID, // Æ®·£Àè¼Ç ID : ºñµ¿±â Åë½ÅÀ» À§ÇÔ DWORD AccountSeq, // °èÁ¤¼ø¹ø WCHAR AccountID[MAX_ACCOUNTID_LENGTH], // °èÁ¤ID int USN, // BT_CN qq°èÁ¤ DWORD AccessIP, // Ŭ¶óÀ̾ðÆ®IP DWORD DeductPrice, // Â÷°¨ÇÒ °¡°Ý DWORD ItemID, // ¾ÆÀÌÅÛ ID DWORD Period, // ÁÖ±â : ¹Þ±â¸¸ ÇÏ°í °á°ú·Î µ¹·ÁÁÜ double ItemUniqueID, // ¾ÆÀÌÅÛ À¯´ÏÅ© ID : ¹Þ±â¸¸ ÇÏ°í °á°ú·Î µ¹·ÁÁÜ DWORD Timeout = 5000); // ŸÀӾƿô. ŸÀӾƿô Àü¿¡ commit ȤÀº rollback ÇÏÁö ¾ÊÀ¸¸é ÀÚµ¿ rollback µÊ. [msec] // ÇØ¿Ü ºô¸µ½Ã½ºÅÛ ¿¬µ¿½Ã Â÷°¨¿¡ ´ëÇÑ Ä¿¹Ô : BT_CN bool CommitDeductCashOutbound( long GameCode, // °ÔÀÓÄÚµå ShopProtocol::PaymentType PaymentType, // °áÁ¦ ŸÀÔ DWORD TransactionID, // Æ®·£Àè¼Ç ID : ºñµ¿±â Åë½ÅÀ» À§ÇÔ DWORD AccountSeq, // °èÁ¤¼ø¹ø DWORD AccessIP, // Ŭ¶óÀÌ¾ðÆ® IP int USN, // BT_CN qq°èÁ¤ DWORD DeductPrice, // Â÷°¨ÇÒ °¡°Ý CHAR DeductNo[MAX_DEDUCTNO_LENGTH]); // BT_CN¿ë OnDeductCashOutbound()¿¡¼­ ¸®ÅϹÞÀº Â÷°¨¹øÈ£(DeductNo) // ÇØ¿Ü ºô¸µ½Ã½ºÅÛ ¿¬µ¿½Ã Â÷°¨¿¡ ´ëÇÑ ·Ñ¹é : BT_CN bool RollbackDeductCashOutbound( long GameCode, // °ÔÀÓÄÚµå ShopProtocol::PaymentType PaymentType, // °áÁ¦ ŸÀÔ DWORD TransactionID, // Æ®·£Àè¼Ç ID : ºñµ¿±â Åë½ÅÀ» À§ÇÔ DWORD AccountSeq, // °èÁ¤¼ø¹ø DWORD AccessIP, // Ŭ¶óÀÌ¾ðÆ® IP int USN, // BT_CN qq°èÁ¤ DWORD DeductPrice, // Â÷°¨ÇÒ °¡°Ý CHAR DeductNo[MAX_DEDUCTNO_LENGTH]); // BT_CN¿ë OnDeductCashOutbound()¿¡¼­ ¸®ÅϹÞÀº Â÷°¨¹øÈ£(DeductNo) protected: // [do not override] - ·Î±ëÈÄ ÀûÀýÇÑ ÀÀ´äó¸® ÇÔ¼ö(On...()) È£Ãâ void OnReceive(PBYTE buffer, int size); // [do not override] - ·Î±ë¸¸ Çϰí OnNetConnect() È£Ãâ void OnConnect(bool success, DWORD error); // [do not override] - ·Î±ë¸¸ Çϰí OnNetSend() È£Ãâ void OnSend(int size); // [do not override] - ·Î±ë¸¸ Çϰí OnNetClose() È£Ãâ void OnClose(DWORD error); protected: // ¼¥ ¼­¹ö ¿¬°áÇÑ °á°ú virtual void OnNetConnect(bool success, DWORD error) = 0; // ¼¥ ¼­¹ö µ¥ÀÌŸ Àü¼Û °á°ú virtual void OnNetSend(int size) = 0; // ¼¥ ¼­¹ö Á¢¼Ó Á¾·á virtual void OnNetClose(DWORD error) = 0; // ·Î±ë½Ã º¸³»´Â À̺¥Æ® ¸Þ¼Òµå virtual void WriteLog(char* szMsg) = 0; // ij½ÃÁ¶È¸ °á°ú // ij½ÃÁ¶È¸ °á°ú : MU_KR, BT_KR, R2_KR, SUN_KR virtual void OnInquireCash( DWORD AccountSeq, double CashSum, double PointSum, double MileageSum, int DetailCount, ShopProtocol::STCashDetail Detail[], long ResultCode); // ij½ÃÁ¶È¸ °á°ú : MU_GB, SUN_GB virtual void OnInquireCash( DWORD AccountSeq, double CashSum, double PointSum, double MileageSum, int ListCount, ShopProtocol::STCashDetail_GB Detail[], long ResultCode); // ij½ÃÁ¶È¸ °á°ú : SUN_CN, SUN_RU, SUN_JP, BT_TH, MU_JP(GameChu, GameOn), MU_TH, MU_TW, MU_VN virtual void OnInquireCash( DWORD AccountSeq, long ResultCode, long OutBoundResultCode, double CashSum, double MileageSum); // ij½ÃÁ¶È¸ °á°ú : BT_CNL virtual void OnInquireCash( DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], double CashSum, double PointSum, double MileageSum, int DetailCount, ShopProtocol::STCashDetail Detail[], long ResultCode, long OutBoundResultCode); // »óǰ±¸¸Å °á°ú // »óǰ±¸¸Å °á°ú : MU_KR, BT_KR, R2_KR, SUN_KR virtual void OnBuyProduct( DWORD AccountSeq, long ResultCode, long LeftProductCount); // »óǰ±¸¸Å °á°ú : SUN_CN, SUN_RU, SUN_JP, MU_JP(GameChu, GameOn), MU_TH, MU_TW, MU_VN virtual void OnBuyProduct( DWORD AccountSeq, long ResultCode, long OutBoundResultCode, long LeftProductCount); // »óǰ±¸¸Å °á°ú : BT_TH, BT_CN virtual void OnBuyProduct( DWORD AccountSeq, long ResultCode, long OutBoundResultCode, long LeftProductCount, double CashSum, // <-- Ãß°¡ : ÀÜ¿© ij½Ã double DeductedPrice, // <-- Ãß°¡ : Â÷°¨µÈ ij½Ã double ItemUniqueID, // <-- Ãß°¡ : bypass BYTE PropertyCount, ShopProtocol::STItemPropertyAll PropertyList[]); // »óǰ±¸¸Å °á°ú : BT_CNL virtual void OnBuyProduct( DWORD AccountSeq, char AccountID[MAX_ACCOUNTID_LENGTH], long LeftProductCount, long ResultCode, long OutBoundResultCode); // »óǰ¼±¹° °á°ú // »óǰ¼±¹° °á°ú : MU_KR, BT_KR, R2_KR, SUN_KR, MU_GB, SUN_GB virtual void OnGiftProduct( DWORD SenderAccountSeq, DWORD ReceiverAccountSeq, double GiftSendLimit, long LeftProductCount, long ResultCode); // »óǰ¼±¹° °á°ú : SUN_CN, SUN_RU, SUN_JP, MU_JP(GameChu, GameOn), MU_TH, MU_TW, MU_VN virtual void OnGiftProduct( DWORD SenderAccountSeq, long ResultCode, long OutBoundResultCode, DWORD ReceiverAccountSeq, long LeftProductCount); // »óǰ¼±¹° °á°ú : BT_TH, BT_CN virtual void OnGiftProduct( DWORD SenderAccountSeq, // ¹ß½ÅÀÚ °èÁ¤¼ø¹ø WCHAR SenderAccountID[MAX_ACCOUNTID_LENGTH], // ¹ß½ÅÀÚ ¾ÆÀ̵ð WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], // ¹ß½ÅÀÚ Ä³¸¯ÅÍ ¸í DWORD ReceiverAccountSeq, // ¼ö½ÅÀÚ °èÁ¤¼ø¹ø WCHAR ReceiverAccountID[MAX_ACCOUNTID_LENGTH], // ¼ö½ÅÀÚ ¾ÆÀ̵ð WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], // ¼ö½ÅÀÚ Ä³¸¯ÅÍ ¸í WCHAR SendMessage[MAX_MESSAGE_LENGTH], // ¼±¹° ¸Þ½ÃÁö double CashSum, // ÀÜ¿© ij½Ã double DeductedPrice, // Â÷°¨µÈ ij½Ã long ResultCode, // °á°ú ÄÚµå long OutBoundResultCode, // OB °á°ú ÄÚµå : ResultCode -3 ÀÎ °æ¿ì üũ long LeftProductCount, // »óǰ ÆÇ¸Å °¡´É ÀÜ¿©¼ö·® (-1: ¹«Á¦ÇÑ) »óǰ °³¼ö Á¤º¸¸¦ °»½ÅÇØ¾ßÇÑ´Ù. BYTE PropertyCount, // ¼Ó¼º(PropertyList) °³¼ö ShopProtocol::STItemPropertyAll PropertyList[]); // ¼Ó¼º ¸®½ºÆ® // »óǰ¼±¹° °á°ú : BT_CNL virtual void OnGiftProduct( DWORD SenderAccountSeq, char SenderAccountID[MAX_ACCOUNTID_LENGTH], WCHAR SenderCharName[MAX_CHARACTERID_LENGTH], DWORD ReceiverAccountSeq, char ReceiverAccountID[MAX_ACCOUNTID_LENGTH], WCHAR ReceiverCharName[MAX_CHARACTERID_LENGTH], WCHAR Message[MAX_MESSAGE_LENGTH], double LimitedCash, long LeftProductCount, long ResultCode, long OutBoundResultCode); // °øÅë ¼­ºñ½º // »óǰ ¼¥ ½ºÅ©¸³Æ® ÃֽйöÀü Á¤º¸ Á¶È¸ : ¸ðµç °ÔÀÓ virtual void OnInquireSalesZoneScriptVersion( unsigned short SalesZone, unsigned short Year, unsigned short YearIdentity, long ResultCode) = 0; // ¹è³Ê ½ºÅ©¸³Æ® ÃֽйöÀü Á¤º¸ Á¶È¸ : ¸ðµç °ÔÀÓ virtual void OnInquireBannerZoneScriptVersion( unsigned short BannerZone, unsigned short Year, unsigned short YearIdentity, long ResultCode) = 0; // ij½Ã ¼±¹° °á°ú : ¸ðµç °ÔÀÓ virtual void OnGiftCash( DWORD SenderSeq, DWORD ReceiverSeq, long ResultCode, double GiftSendLimit) = 0; // »óǰ ±¸¸Å/¼±¹° °¡´É Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireBuyGiftPossibility( DWORD AccountID, long ResultCode, long ItemBuy, long Present, double MyPresentCash, double MyPresentSendLimit) = 0; // À̺¥Æ® »óǰ ¸®½ºÆ® Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireEventProductList( DWORD AccountSeq, long ProductDisplaySeq, int PackagesCount, long Packages[]) = 0; // Àü½Ã »óǰ ÀÜ¿© °³¼ö Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireProductLeftCount( long PackageSeq, long LeftCount) = 0; // [deprecated] º¸°üÇÔ Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireStorageList( DWORD AccountID, long ListCount, long ResultCode, ShopProtocol::STStorage StorageList[]); // [deprecated] º¸°üÇÔ ÆäÀÌÁö Á¶È¸ °á°ú : ¸ðµç °ÔÀÓ virtual void OnInquireStorageListPage( DWORD AccountID, int ResultCode, char StorageType, int NowPage, int TotalPage, int TotalCount, int ListCount, ShopProtocol::STStorage StorageList[]) = 0; // [deprecated] º¸°üÇÔ ÆäÀÌÁö Á¶È¸ °á°ú(¼±¹° ¸Þ½ÃÁö Á¦¿Ü) : ¸ðµç °ÔÀÓ virtual void OnInquireStorageListPageNoGiftMessage( DWORD AccountID, int ResultCode, char StorageType, int NowPage, int TotalPage, int TotalCount, int ListCount, ShopProtocol::STStorageNoGiftMessage StorageList[]); // º¸°üÇÔ Á¶È¸ °á°ú(¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ virtual void OnInquireStorageListEx( DWORD AccountID, long ListCount, long ResultCode, ShopProtocol::STStorageEx StorageListEx[]); // º¸°üÇÔ ÆäÀÌÁö Á¶È¸ °á°ú(¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ virtual void OnInquireStorageListPageEx( DWORD AccountID, int ResultCode, char StorageType, int NowPage, int TotalPage, int TotalCount, int ListCount, ShopProtocol::STStorageEx StorageListEx[]); // º¸°üÇÔ ÆäÀÌÁö Á¶È¸ °á°ú(¼±¹° ¸Þ½ÃÁö Á¦¿Ü,¸¸·á½ÃÁ¡ Ãß°¡) : ¸ðµç °ÔÀÓ virtual void OnInquireStorageListPageNoGiftMessageEx( DWORD AccountID, int ResultCode, char StorageType, int NowPage, int TotalPage, int TotalCount, int ListCount, ShopProtocol::STStorageNoGiftMessageEx StorageListEx[]); // º¸°üÇÔ »óǰ »ç¿ëÇϱ⠰á°ú : ¸ðµç °ÔÀÓ virtual void OnUseStorage( DWORD AccountSeq, long ResultCode, char InGameProductID[MAX_TYPENAME_LENGTH], BYTE PropertyCount, long ProductSeq, long StorageSeq, long StorageItemSeq, ShopProtocol::STItemProperty PropertyList[]); // º¸°üÇÔ »óǰ »ç¿ëÇϱ⠰á°ú Ex : SUN_GB // °á°ú°ª CashType Ãß°¡ virtual void OnUseStorageEx( DWORD AccountSeq, long ResultCode, char InGameProductID[MAX_TYPENAME_LENGTH], BYTE PropertyCount, long ProductSeq, long StorageSeq, long StorageItemSeq, ShopProtocol::STItemProperty PropertyList[], int CashType); // º¸°üÇÔ »óǰ »ç¿ëÇϱ⠰á°ú Ex : SUN_CN // DeductMileageFlag Ãß°¡ (false : ij½Ã»óǰ(0), true : ¸¶Àϸ®Áö »óǰ(1)) virtual void OnUseStorageExDeductMileageFlag( DWORD AccountSeq, long ResultCode, char InGameProductID[MAX_TYPENAME_LENGTH], BYTE PropertyCount, long ProductSeq, long StorageSeq, long StorageItemSeq, ShopProtocol::STItemProperty PropertyList[], bool DeductMileageFlag); // º¸°üÇÔ »óǰ »ç¿ëÇϱ⠷ѹé : ¸ðµç °ÔÀÓ virtual void OnRollbackUseStorage( DWORD AccountSeq, long ResultCode) = 0; // º¸°üÇÔ »óǰ ¹ö¸®±â °á°ú : ¸ðµç °ÔÀÓ virtual void OnThrowStorage( DWORD AccountSeq, long ResultCode) = 0; // ¸¶Àϸ®Áö ¼ÒÁø : ¸ðµç °ÔÀÓ virtual void OnMileageDeduct( DWORD AccountSeq, long ResultCode) = 0; // ¸¶Àϸ®Áö Àû¸³ : ¸ðµç °ÔÀÓ virtual void OnMileageSave( DWORD AccountSeq, long ResultCode) = 0; // ½Ç½Ã°£ ¸¶Àϸ®Áö Àû¸³ : ¸ðµç °ÔÀÓ virtual void OnMileageLiveSaveUp( DWORD AccountSeq, long ResultCode) = 0; // ¾ÆÀÌÅÛ ½Ã¸®¾ó ÄÚµå ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ virtual void OnItemSerialUpdate( DWORD AccountSeq, long ResultCode) = 0; // ¼¥ ½ºÅ©¸³Æ® ¹öÀü Á¤º¸ ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ virtual void OnUpdateVersion( long GameCode, unsigned short SalesZone, unsigned short year, unsigned short yearIdentity) = 0; // ¹è³Ê ½ºÅ©¸³Æ® ¹öÀü Á¤º¸ ¾÷µ¥ÀÌÆ® : ¸ðµç °ÔÀÓ virtual void OnUpdateBannerVersion( long GameCode, unsigned short BannerZone, unsigned short year, unsigned short yearIdentity) = 0; // ÀΰÔÀÓ Æ÷ÀÎÆ® À¯Çüº° Áö±Þ ÆÛ¼¾Æ® Á¶È¸ : HX Àü¿ë virtual void OnInquireInGamePointValue( long ResultCode, long PointCount, ShopProtocol::STPointDetail PointList[]); // ¾Æ¿ô¹Ù¿îµå ij½Ã Â÷°¨ : BT_TH virtual void OnDeductCashOutbound( long ResultCode, // °á°úÄÚµå long OutBoundResultCode, // Outbound »ó¼¼¿¡·¯ DWORD TransactionID, // async Åë½Å¿ë Æ®·£Àè¼Ç id DWORD AccountSeq, // DeductCashOutbound()¿¡¼­ ³Ñ°ÜÁØ °ª WCHAR AccountID[MAX_ACCOUNTID_LENGTH],// DeductCashOutbound()¿¡¼­ ³Ñ°ÜÁØ °ª DWORD DeductedPrice, // Â÷°¨µÈ ±Ý¾× INT64 DeductNo, // Â÷°¨¼º°ø½Ã Â÷°¨¹øÈ£ double CashSum, // ÀÜ¿©Ä³½Ã DWORD Period, // ÁÖ±â : ¹Þ±â¸¸ ÇÏ°í °á°ú·Î µ¹·ÁÁÜ double ItemUniqueID); // ¾ÆÀÌÅÛ À¯´ÏÅ© ID : ¹Þ±â¸¸ ÇÏ°í °á°ú·Î µ¹·ÁÁÜ // ¾Æ¿ô¹Ù¿îµå ij½Ã Â÷°¨ ·Ñ¹é : BT_TH virtual void OnRollbackDeductCashOutbound( long ResultCode, // °á°úÄÚµå long OutBoundResultCode, // Outbound »ó¼¼¿¡·¯ DWORD TransactionID, // async Åë½Å¿ë Æ®·£Àè¼Ç id DWORD AccountSeq, // DeductCashOutbound()¿¡¼­ ³Ñ°ÜÁØ °ª INT64 DeductNo, // Â÷°¨¼º°ø½Ã Â÷°¨¹øÈ£ double CashSum); // ÀÜ¿©Ä³½Ã // ¾Æ¿ô¹Ù¿îµå ij½Ã Â÷°¨ : BT_CN virtual void OnDeductCashOutbound( long ResultCode, // °á°úÄÚµå long OutBoundResultCode, // Outbound »ó¼¼¿¡·¯ DWORD TransactionID, // async Åë½Å¿ë Æ®·£Àè¼Ç id DWORD AccountSeq, // DeductCashOutbound()¿¡¼­ ³Ñ°ÜÁØ °ª WCHAR AccountID[MAX_ACCOUNTID_LENGTH],// DeductCashOutbound()¿¡¼­ ³Ñ°ÜÁØ °ª DWORD DeductedPrice, // Â÷°¨µÈ ±Ý¾× CHAR DeductNo[MAX_DEDUCTNO_LENGTH], // Â÷°¨¹øÈ£ double CashSum, // ÀÜ¿©Ä³½Ã DWORD Period, // ÁÖ±â : ¹Þ±â¸¸ ÇÏ°í °á°ú·Î µ¹·ÁÁÜ double ItemUniqueID); // ¾ÆÀÌÅÛ À¯´ÏÅ© ID : ¹Þ±â¸¸ ÇÏ°í °á°ú·Î µ¹·ÁÁÜ // ¾Æ¿ô¹Ù¿îµå ij½Ã Â÷°¨ Ä¿¹Ô : BT_CN virtual void OnCommitDeductCashOutbound( long ResultCode, // °á°úÄÚµå long OutBoundResultCode, // Outbound »ó¼¼¿¡·¯ DWORD TransactionID, // async Åë½Å¿ë Æ®·£Àè¼Ç id DWORD AccountSeq, // DeductCashOutbound()¿¡¼­ ³Ñ°ÜÁØ °ª DWORD DeductPrice, // Â÷°¨ ±Ý¾× double CashSum, // ÀÜ¿©Ä³½Ã CHAR DeductNo[MAX_DEDUCTNO_LENGTH]); // Â÷°¨¹øÈ£ // ¾Æ¿ô¹Ù¿îµå ij½Ã Â÷°¨ ·Ñ¹é : BT_CN virtual void OnRollbackDeductCashOutbound( long ResultCode, // °á°úÄÚµå long OutBoundResultCode, // Outbound »ó¼¼¿¡·¯ DWORD TransactionID, // async Åë½Å¿ë Æ®·£Àè¼Ç id DWORD AccountSeq, // DeductCashOutbound()¿¡¼­ ³Ñ°ÜÁØ °ª DWORD DeductPrice, // Â÷°¨ ±Ý¾× double CashSum, // ÀÜ¿©Ä³½Ã CHAR DeductNo[MAX_DEDUCTNO_LENGTH]); // Â÷°¨¹øÈ£ private: // ·Î±× »ç¿ë void WriteLog(const char* szFormat, ...); };