Go
to the documentation of this file.
00001
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #pragma once
00018
00019 #include "PFExport.h"
00020 #include "..\notify.h"
00021 #include "..\ifnpub.h"
00022
00023
00024
00025 #define PFACTIONLISTPOOL_INTERFACE Interface_ID(0x74f93d09, 0x1eb34500)
00026
00027 #define GetPFActionListPoolInterface(obj) ((IPFActionListPool*)obj->GetInterface(PFACTIONLISTPOOL_INTERFACE))
00028
00029 class IPFActionListPool : public FPMixinInterface
00030 {
00031 public:
00032
00033
00034 enum { kNumActionLists,
00035 kGetActionList,
00036 kHasActionList,
00037 kHasActionListByHandle,
00038 kRegisterNotification,
00039 kUnRegisterNotification
00040 };
00041
00042 BEGIN_FUNCTION_MAP
00043 FN_0(kNumActionLists, TYPE_INT, NumActionLists );
00044 FN_1(kGetActionList, TYPE_INODE, GetActionList, TYPE_INDEX );
00045 FN_1(kHasActionList, TYPE_bool, HasActionList, TYPE_INODE );
00046 FN_1(kHasActionListByHandle, TYPE_bool, HasActionListByHandle, TYPE_INT );
00047 END_FUNCTION_MAP
00048
00056 virtual int NumActionLists() = 0;
00057
00062 virtual INode* GetActionList(int i) = 0;
00063
00068 virtual bool HasActionList(INode* node) = 0;
00069
00073 virtual bool HasActionListByHandle(int handle) = 0;
00074
00082 virtual int RegisterNotification(NOTIFYPROC proc, void *param) = 0;
00083
00092 virtual int UnRegisterNotification(NOTIFYPROC proc, void *param) = 0;
00093
00097 FPInterfaceDesc* GetDesc() { return GetDescByID(PFACTIONLISTPOOL_INTERFACE); }
00098
00102 friend PFExport IPFActionListPool* GetPFActionListPool();
00103
00104 protected:
00105 PFExport IPFActionListPool();
00106
00107 static IPFActionListPool* m_pool;
00108 };
00109
00113 PFExport IPFActionListPool* GetPFActionListPool();
00114