00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __WIN32WNDCHILD_H__
00013 #define __WIN32WNDCHILD_H__
00014
00015 #ifdef OS2_INCLUDED
00016 #include <win32api.h>
00017 #endif
00018
00019 #ifdef __cplusplus
00020
00021 class ChildWindow
00022 {
00023 public:
00024 ChildWindow(CRITICAL_SECTION *pLock);
00025 virtual ~ChildWindow();
00026
00027 ChildWindow *getFirstChild() { return children; };
00028 ChildWindow *getNextChild() { return nextchild; };
00029
00030 protected:
00031
00032 ChildWindow *getParentOfChild() { return parent; };
00033 ChildWindow *setParentOfChild(ChildWindow *newParent)
00034 {
00035 ChildWindow *oldparent = parent;
00036
00037 parent = newParent;
00038 return oldparent;
00039 }
00040
00041 BOOL addChild(ChildWindow *child);
00042 BOOL removeChild(ChildWindow *child);
00043
00044 void setNextChild(ChildWindow *child) { nextchild = child; };
00045
00046 BOOL destroyChildren();
00047
00048 private:
00049 void Lock() { EnterCriticalSection(pLockChild); };
00050 void Unlock() { LeaveCriticalSection(pLockChild); };
00051
00052 CRITICAL_SECTION *pLockChild;
00053
00054 ChildWindow *parent;
00055 ChildWindow *children;
00056 ChildWindow *nextchild;
00057 };
00058
00059
00060 #endif //__cplusplus
00061
00062 #endif //__WIN32WNDCHILD_H__