123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416 |
- #ifndef __API_APPLICATION_H
- #define __API_APPLICATION_H
- #include <bfc/dispatch.h>
- #include <bfc/platform/guid.h>
- #include <bfc/platform/platform.h>
- #ifdef _WIN32
- #include "ifc_messageprocessor.h"
- #endif
- enum
- {
- API_APPLICATION_SUCCESS = 0,
- API_APPLICATION_FAILURE = 1,
- };
- enum
- {
- TRANSLATE_MODE_NORMAL = 0,
- TRANSLATE_MODE_GLOBAL = 1,
- TRANSLATE_MODE_CHILD = 2,
- };
- class NOVTABLE api_application: public Dispatchable
- {
- protected:
- api_application() {}
- ~api_application() {}
- public:
- const wchar_t *main_getAppName();
- const wchar_t *main_getVersionString();
- const wchar_t *main_getVersionNumString();
- unsigned int main_getBuildNumber();
- GUID main_getGUID();
- #ifdef _WIN32
- HANDLE main_getMainThreadHandle();
- HINSTANCE main_gethInstance();
- #endif
- const wchar_t *main_getCommandLine();
- void main_shutdown( int deferred = TRUE );
- void main_cancelShutdown();
- int main_isShuttingDown();
- const wchar_t *path_getAppPath();
- const wchar_t *path_getUserSettingsPath();
-
- const wchar_t *path_getSkinSettingsPath();
- int app_getInitCount();
- intptr_t app_messageLoopStep();
- #ifdef _WIN32
- void app_addMessageProcessor( ifc_messageprocessor *processor );
- void app_removeMessageProcessor( ifc_messageprocessor *processor );
-
-
- void app_addAccelerators( HWND hwnd, HACCEL *phAccel, INT cAccel, UINT translateMode );
- void app_removeAccelerators( HWND hwnd );
- bool app_translateAccelerators( MSG *msg );
- int app_getAccelerators( HWND hwnd, HACCEL *phAccel, INT cchAccelMax, BOOL bGlobal );
-
- void app_registerGlobalWindow( HWND hwnd );
- void app_unregisterGlobalWindow( HWND hwnd );
-
- bool DirectMouseWheel_RegisterSkipClass( ATOM klass );
- bool DirectMouseWheel_UnregisterSkipClass( ATOM klass );
- bool DirectMouseWheel_EnableConvertToMouseWheel( HWND hwnd, BOOL enable );
-
- BOOL DirectMouseWheel_ProcessDialogMessage( HWND hwnd, unsigned int uMsg, WPARAM wParam, LPARAM lParam, const int controls[], int controlslen );
-
- void ActiveDialog_Register( HWND hwnd );
- void ActiveDialog_Unregister( HWND hwnd );
- HWND ActiveDialog_Get();
-
- const wchar_t *getATFString();
-
-
- int getScaleX( int x );
- int getScaleY( int y );
- #endif
-
- const wchar_t *path_getWorkingPath();
- void path_setWorkingPath(const wchar_t *newPath);
-
-
- int GetMachineID( GUID *id );
-
-
-
- int GetUserID( GUID *id );
-
- int GetSessionID( GUID *id );
-
- size_t AllocateThreadStorage();
- void *GetThreadStorage(size_t index);
- void SetThreadStorage(size_t index, void *value);
- protected:
- enum
- {
- API_APPLICATION_MAIN_GETAPPNAME = 10,
- API_APPLICATION_MAIN_GETVERSIONSTRING = 20,
- API_APPLICATION_MAIN_GETVERSIONSTRING2 = 21,
- API_APPLICATION_MAIN_GETBUILDNUMBER = 30,
- API_APPLICATION_MAIN_GETGUID = 40,
- API_APPLICATION_MAIN_GETMAINTHREADHANDLE = 50,
- API_APPLICATION_MAIN_GETHINSTANCE = 60,
- API_APPLICATION_MAIN_GETCOMMANDLINE = 70,
- API_APPLICATION_MAIN_SHUTDOWN = 80,
- API_APPLICATION_MAIN_CANCELSHUTDOWN = 90,
- API_APPLICATION_MAIN_ISSHUTTINGDOWN = 100,
- API_APPLICATION_PATH_GETAPPPATH = 110,
- API_APPLICATION_PATH_GETUSERSETTINGSPATH = 120,
- API_APPLICATION_APP_GETINITCOUNT = 130,
- API_APPLICATION_APP_MESSAGELOOPSTEP = 140,
- API_APPLICATION_APP_ADDMESSAGEPROCESSOR = 150,
- API_APPLICATION_APP_REMOVEMESSAGEPROCESSOR = 160,
- API_APPLICATION_APP_ADDMODELESSDIALOG = 170,
- API_APPLICATION_APP_REMOVEMODELESSDIALOG = 180,
- API_APPLICATION_PATH_GETWORKINGPATH = 190,
- API_APPLICATION_PATH_SETWORKINGPATH = 200,
- API_APPLICATION_GETMACHINEID = 210,
- API_APPLICATION_GETUSERID = 220,
- API_APPLICATION_GETSESSIONID = 230,
- API_APPLICATION_APP_ADDACCELERATORS = 240,
- API_APPLICATION_APP_REMOVEACCELERATORS = 250,
- API_APPLICATION_APP_TRANSLATEACCELERATORS = 260,
- API_APPLICATION_APP_GETACCELERATORS = 270,
- API_APPLICATION_APP_REGISTERGLOBALWINDOW = 280,
- API_APPLICATION_APP_UNREGISTERGLOBALWINDOW = 290,
- API_APPLICATION_ALLOCATETHREADSTORAGE = 300,
- API_APPLICATION_GETTHREADSTORAGE = 310,
- API_APPLICATION_SETTHREADSTORAGE = 320,
- API_APPLICATION_PATH_GETSKINSETTINGSPATH = 330,
- API_APPLICATION_DIRECTMOUSEWHEEL_REGISTERSKIPCLASS = 340,
- API_APPLICATION_DIRECTMOUSEWHEEL_UNREGISTERSKIPCLASS = 350,
- API_APPLICATION_DIRECTMOUSEWHEEL_ENABLECONVERTTOMOUSEWHEEL = 360,
- API_APPLICATION_DIRECTMOUSEWHEEL_PROCESSDIALOGMESSAGE = 365,
- API_APPLICATION_ACTIVEDIALOG_REGISTER = 370,
- API_APPLICATION_ACTIVEDIALOG_UNREGISTER = 380,
- API_APPLICATION_ACTIVEDIALOG_GET = 390,
- API_APPLICATION_GETATFSTRING = 400,
- API_APPLICATION_GETSCALEX = 500,
- API_APPLICATION_GETSCALEY = 510,
- };
- };
- inline const wchar_t *api_application::main_getAppName()
- {
- const wchar_t *__retval = _call(API_APPLICATION_MAIN_GETAPPNAME, (const wchar_t *)0);
- return __retval;
- }
- inline const wchar_t *api_application::main_getVersionString()
- {
- const wchar_t *__retval = _call(API_APPLICATION_MAIN_GETVERSIONSTRING, (const wchar_t *)0);
- return __retval;
- }
- inline const wchar_t *api_application::main_getVersionNumString()
- {
- return _call(API_APPLICATION_MAIN_GETVERSIONSTRING2, (const wchar_t *)0);
- }
- inline unsigned int api_application::main_getBuildNumber()
- {
- return _call(API_APPLICATION_MAIN_GETBUILDNUMBER, 0);
- }
- inline GUID api_application::main_getGUID()
- {
- GUID __retval = _call(API_APPLICATION_MAIN_GETGUID, INVALID_GUID);
- return __retval;
- }
- #ifdef _WIN32
- inline HANDLE api_application::main_getMainThreadHandle()
- {
- HANDLE __retval = _call(API_APPLICATION_MAIN_GETMAINTHREADHANDLE, (HANDLE)NULL);
- return __retval;
- }
- inline HINSTANCE api_application::main_gethInstance()
- {
- HINSTANCE __retval = _call(API_APPLICATION_MAIN_GETHINSTANCE, (HINSTANCE)NULL);
- return __retval;
- }
- #endif
- inline const wchar_t *api_application::main_getCommandLine()
- {
- const wchar_t *__retval = _call(API_APPLICATION_MAIN_GETCOMMANDLINE, (const wchar_t *)0);
- return __retval;
- }
- inline void api_application::main_shutdown(int deferred)
- {
- _voidcall(API_APPLICATION_MAIN_SHUTDOWN, deferred);
- }
- inline void api_application::main_cancelShutdown()
- {
- _voidcall(API_APPLICATION_MAIN_CANCELSHUTDOWN);
- }
- inline int api_application::main_isShuttingDown()
- {
- int __retval = _call(API_APPLICATION_MAIN_ISSHUTTINGDOWN, (int)0);
- return __retval;
- }
- inline const wchar_t *api_application::path_getAppPath()
- {
- const wchar_t *__retval = _call(API_APPLICATION_PATH_GETAPPPATH, (const wchar_t *)0);
- return __retval;
- }
- inline const wchar_t *api_application::path_getUserSettingsPath()
- {
- return _call(API_APPLICATION_PATH_GETUSERSETTINGSPATH, (const wchar_t *)0);
- }
- inline const wchar_t *api_application::path_getSkinSettingsPath()
- {
- return _call(API_APPLICATION_PATH_GETSKINSETTINGSPATH, (const wchar_t *)0);
- }
- inline int api_application::app_getInitCount()
- {
- int __retval = _call(API_APPLICATION_APP_GETINITCOUNT, 0);
- return __retval;
- }
- inline intptr_t api_application::app_messageLoopStep()
- {
- return _call(API_APPLICATION_APP_MESSAGELOOPSTEP, (intptr_t)1);
- }
- #ifdef _WIN32
- inline void api_application::app_addMessageProcessor(ifc_messageprocessor *processor)
- {
- _voidcall(API_APPLICATION_APP_ADDMESSAGEPROCESSOR, processor);
- }
- inline void api_application::app_removeMessageProcessor(ifc_messageprocessor *processor)
- {
- _voidcall(API_APPLICATION_APP_REMOVEMESSAGEPROCESSOR, processor);
- }
- inline void api_application::app_addAccelerators(HWND hwnd, HACCEL *phAccel, INT cAccel, UINT translateMode)
- {
- _voidcall(API_APPLICATION_APP_ADDACCELERATORS, hwnd, phAccel, cAccel, translateMode);
- }
- inline void api_application::app_removeAccelerators(HWND hwnd)
- {
- _voidcall(API_APPLICATION_APP_REMOVEACCELERATORS, hwnd);
- }
- inline bool api_application::app_translateAccelerators(MSG *msg)
- {
- return _call(API_APPLICATION_APP_TRANSLATEACCELERATORS, (bool)false, msg);
- }
- inline int api_application::app_getAccelerators(HWND hwnd, HACCEL *phAccel, INT cchAccelMax, BOOL bGlobal)
- {
- return _call(API_APPLICATION_APP_GETACCELERATORS, (int)0, hwnd, phAccel, cchAccelMax, bGlobal);
- }
- inline void api_application::app_registerGlobalWindow(HWND hwnd)
- {
- _voidcall(API_APPLICATION_APP_REGISTERGLOBALWINDOW, hwnd);
- }
- inline void api_application::app_unregisterGlobalWindow(HWND hwnd)
- {
- _voidcall(API_APPLICATION_APP_UNREGISTERGLOBALWINDOW, hwnd);
- }
- inline bool api_application::DirectMouseWheel_RegisterSkipClass(ATOM klass)
- {
- return _call(API_APPLICATION_DIRECTMOUSEWHEEL_REGISTERSKIPCLASS, (bool)false, klass);
- }
- inline bool api_application::DirectMouseWheel_UnregisterSkipClass(ATOM klass)
- {
- return _call(API_APPLICATION_DIRECTMOUSEWHEEL_UNREGISTERSKIPCLASS, (bool)false, klass);
- }
- inline bool api_application::DirectMouseWheel_EnableConvertToMouseWheel(HWND hwnd, BOOL enable)
- {
- return _call(API_APPLICATION_DIRECTMOUSEWHEEL_ENABLECONVERTTOMOUSEWHEEL, (bool)false, hwnd, enable);
- }
- inline BOOL api_application::DirectMouseWheel_ProcessDialogMessage(HWND hwnd, unsigned int uMsg, WPARAM wParam, LPARAM lParam, const int controls[], int controlslen)
- {
- return _call(API_APPLICATION_DIRECTMOUSEWHEEL_PROCESSDIALOGMESSAGE, (BOOL)FALSE, hwnd, uMsg, wParam, lParam, controls, controlslen);
- }
- inline void api_application::ActiveDialog_Register(HWND hwnd)
- {
- _voidcall(API_APPLICATION_ACTIVEDIALOG_REGISTER, hwnd);
- }
- inline void api_application::ActiveDialog_Unregister(HWND hwnd)
- {
- _voidcall(API_APPLICATION_ACTIVEDIALOG_UNREGISTER, hwnd);
- }
- inline HWND api_application::ActiveDialog_Get()
- {
- return _call(API_APPLICATION_ACTIVEDIALOG_GET, (HWND)NULL);
- }
- inline const wchar_t *api_application::getATFString()
- {
- return _call(API_APPLICATION_GETATFSTRING, (wchar_t *)0);
- }
- inline int api_application::getScaleX(int x)
- {
- return _call(API_APPLICATION_GETSCALEX, (int)0, x);
- }
- inline int api_application::getScaleY(int y)
- {
- return _call(API_APPLICATION_GETSCALEY, (int)0, y);
- }
- #endif
- inline const wchar_t *api_application::path_getWorkingPath()
- {
- return _call(API_APPLICATION_PATH_GETWORKINGPATH, (wchar_t *)0);
- }
- inline void api_application::path_setWorkingPath(const wchar_t *newPath)
- {
- _voidcall(API_APPLICATION_PATH_SETWORKINGPATH, newPath);
- }
- inline int api_application::GetMachineID(GUID *id)
- {
- return _call(API_APPLICATION_GETMACHINEID, (int)API_APPLICATION_FAILURE, id);
- }
- inline int api_application::GetUserID(GUID *id)
- {
- return _call(API_APPLICATION_GETUSERID, (int)API_APPLICATION_FAILURE, id);
- }
- inline int api_application::GetSessionID(GUID *id)
- {
- return _call(API_APPLICATION_GETSESSIONID, (int)API_APPLICATION_FAILURE, id);
- }
- inline size_t api_application::AllocateThreadStorage()
- {
- return _call(API_APPLICATION_ALLOCATETHREADSTORAGE, (size_t)-1);
- }
- inline void *api_application::GetThreadStorage(size_t index)
- {
- return _call(API_APPLICATION_GETTHREADSTORAGE, (void *)0, index);
- }
- inline void api_application::SetThreadStorage(size_t index, void *value)
- {
- _voidcall(API_APPLICATION_SETTHREADSTORAGE, index, value);
- }
- static const GUID applicationApiServiceGuid =
- {
- 0x23b96771, 0x9d7, 0x46d3, { 0x9a, 0xe2, 0x20, 0xdc, 0xea, 0x6c, 0x86, 0xea }
- };
- extern api_application *applicationApi;
- #endif
|