123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- #ifndef __SVC_ROLESERVER_H
- #define __SVC_ROLESERVER_H
- #include <bfc/dispatch.h>
- #include <bfc/string/string.h>
- #include <bfc/ptrlist.h>
- #include <api/service/services.h>
- #include <api/script/scriptobj.h>
- class ifc_window;
- #define FLATTENFLAG_FLATTEN 1
- #define FLATTENFLAG_UNFLATTEN -1
- #define FLATTENFLAG_ASKPARENT 0
- class NOVTABLE roleServerObject : public Dispatchable {
- public:
- int wndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
- HWND gethWnd();
- int flattenContent(HWND *w);
- enum {
- RSO_WNDPROC=0,
- RSO_GETHWND=10,
- RSO_FLATTENCONTENT=20,
- };
- };
- inline int roleServerObject::wndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
- return _call(RSO_WNDPROC, 0, hWnd, uMsg, wParam, lParam);
- }
- inline HWND roleServerObject::gethWnd() {
- return _call(RSO_GETHWND, (HWND)NULL);
- }
- inline int roleServerObject::flattenContent(HWND *w) {
- return _call(RSO_FLATTENCONTENT, 0, w);
- }
- class roleServerObjectI : public roleServerObject {
- public:
-
- roleServerObjectI(HWND parent, ifc_window *w);
- virtual ~roleServerObjectI();
- virtual int wndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
- virtual HWND createWindow(HWND parent)=0;
- virtual int flattenContent(HWND *w);
- protected:
- ScriptObject *getScriptObject();
- virtual ifc_window *getWnd();
- virtual HWND gethWnd();
- WNDPROC getOldProc();
- HWND hwnd, parent;
- ifc_window *wnd;
- long (__stdcall *oldproc)(struct HWND__ *,unsigned int,unsigned int,long);
- int triedyet;
- RECVS_DISPATCH;
- };
- class NOVTABLE svc_accRoleServer : public Dispatchable {
- public:
- static FOURCC getServiceType() { return WaSvc::ACCESSIBILITYROLESERVER; }
-
- int handleRole(int role);
- roleServerObject *createObject(HWND parent, ifc_window *attached_wnd);
- void destroyObject(roleServerObject *obj);
- enum {
- RS_HANDLEROLE=10,
- RS_CREATEOBJECT=20,
- RS_DESTROYOBJECT=30
- };
- };
- inline int svc_accRoleServer::handleRole(int role) {
- return _call(RS_HANDLEROLE, 0, role);
- }
- inline roleServerObject *svc_accRoleServer::createObject(HWND parent, ifc_window *attached_wnd) {
- return _call(RS_CREATEOBJECT, (roleServerObject *)NULL, parent, attached_wnd);
- }
- inline void svc_accRoleServer::destroyObject(roleServerObject *obj) {
- _voidcall(RS_DESTROYOBJECT, obj);
- }
- class svc_accRoleServerI : public svc_accRoleServer {
-
- public:
- virtual int handleRole(int role)=0;
- virtual roleServerObject *createObject(HWND parent, ifc_window *attached_wnd)=0;
- virtual void destroyObject(roleServerObject *obj)=0;
- protected:
- RECVS_DISPATCH;
- };
- #include <api/service/servicei.h>
- template <class T>
- class AccRoleServerCreatorSingle : public waServiceFactoryTSingle<svc_accRoleServer, T> {
- public:
- svc_accRoleServer *getHandler() {
- return getSingleService();
- }
- };
- #include <api/service/svc_enum.h>
- #include <bfc/string/string.h>
- class AccRoleServerEnum : public SvcEnumT<svc_accRoleServer> {
- public:
- AccRoleServerEnum(int role) : roletest(role) { }
- protected:
- virtual int testService(svc_accRoleServer *svc) {
- return (svc->handleRole(roletest));
- }
- private:
- int roletest;
- };
- #endif
|