#pragma once #undef OCSP_REQUEST #undef OCSP_RESPONSE #include class CContact; struct CSkypeProto; typedef void (__cdecl CSkypeProto::* OnContactChangeFunc)(CContact*, int); class CContact : public Contact { public: typedef DRef Ref; typedef DRefs Refs; CContact(unsigned int oid, SERootObject* root); private: void OnChange(int prop); }; class CContactGroup : public ContactGroup { public: typedef DRef Ref; typedef DRefs Refs; CContactGroup(unsigned int oid, SERootObject* root); CContact::Refs ContactList; private: void OnChange(const ContactRef& contact); }; class CAccount : public Account { public: typedef DRef Ref; typedef DRefs Refs; bool isLoggedOut; CAccount(unsigned int oid, SERootObject* root); void BlockWhileLoggingIn(); void BlockWhileLoggingOut(); void SetOnChangeCallback(OnContactChangeFunc callback, CSkypeProto* proto); private: CSkypeProto* proto; OnContactChangeFunc callback; void OnChange(int prop); }; class CSkype : public Skype { public: CAccount* newAccount(int oid); CContactGroup* newContactGroup(int oid); CContact* newContact(int oid); };