diff options
Diffstat (limited to 'Src/Wasabi/api/service/waservicefactory.h')
-rw-r--r-- | Src/Wasabi/api/service/waservicefactory.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/Src/Wasabi/api/service/waservicefactory.h b/Src/Wasabi/api/service/waservicefactory.h new file mode 100644 index 00000000..88a72104 --- /dev/null +++ b/Src/Wasabi/api/service/waservicefactory.h @@ -0,0 +1,109 @@ +// ---------------------------------------------------------------------------- +// Generated by InterfaceFactory [Wed May 07 00:57:16 2003] +// +// File : waservicefactory.h +// Class : waServiceFactory +// class layer : Dispatchable Interface +// ---------------------------------------------------------------------------- + +#ifndef __WASERVICEFACTORY_H +#define __WASERVICEFACTORY_H + +#include <bfc/dispatch.h> +#include <bfc/nsguid.h> +#include "api_service.h" +// ---------------------------------------------------------------------------- + +class NOVTABLE waServiceFactory : public Dispatchable +{ +protected: + waServiceFactory() throw( ) {} + ~waServiceFactory() {} + +public: + FOURCC getServiceType(); + const char *getServiceName(); + GUID getGuid(); + const wchar_t *getTestString(); + + void *getInterface( int global_lock = TRUE ); + int releaseInterface( void *ifc ); + + int supportNonLockingGetInterface(); + int serviceNotify( int msg, intptr_t param1 = 0, intptr_t param2 = 0 ); + +protected: + enum + { + WASERVICEFACTORY_GETSERVICETYPE = 100, + WASERVICEFACTORY_GETSERVICENAME = 200, + WASERVICEFACTORY_GETGUID = 210, + WASERVICEFACTORY_GETINTERFACE = 300, + WASERVICEFACTORY_SUPPORTNONLOCKINGGETINTERFACE = 301, + WASERVICEFACTORY_RELEASEINTERFACE = 310, + WASERVICEFACTORY_GETTESTSTRING = 500, + WASERVICEFACTORY_SERVICENOTIFY = 600, + }; +}; + +// ---------------------------------------------------------------------------- + +inline FOURCC waServiceFactory::getServiceType() +{ + FOURCC __retval = _call( WASERVICEFACTORY_GETSERVICETYPE, (FOURCC)NULL ); + return __retval; +} + +inline const char *waServiceFactory::getServiceName() +{ + const char *__retval = _call( WASERVICEFACTORY_GETSERVICENAME, (const char *)0 ); + return __retval; +} + +inline GUID waServiceFactory::getGuid() +{ + GUID __retval = _call( WASERVICEFACTORY_GETGUID, INVALID_GUID ); + return __retval; +} + +inline const wchar_t *waServiceFactory::getTestString() +{ + return _call( WASERVICEFACTORY_GETTESTSTRING, (const wchar_t *)0 ); +} + + +inline void *waServiceFactory::getInterface( int global_lock ) +{ + void *__retval = _call( WASERVICEFACTORY_GETINTERFACE, (void *)NULL, global_lock ); + +#if 0 // unused in Winamp 5 + // -- generated code - edit in waservicefactoryi.h + // support old code that always locks even when global_lock==FALSE + if ( !global_lock && __retval != NULL && !supportNonLockingGetInterface() ) + WASABI_API_SVC->service_unlock( __retval ); +#endif + return __retval; +} + +inline int waServiceFactory::releaseInterface( void *ifc ) +{ + int __retval = _call( WASERVICEFACTORY_RELEASEINTERFACE, (int)0, ifc ); + return __retval; +} + + +inline int waServiceFactory::supportNonLockingGetInterface() +{ + int __retval = _call( WASERVICEFACTORY_SUPPORTNONLOCKINGGETINTERFACE, (int)0 ); + return __retval; +} + +inline int waServiceFactory::serviceNotify( int msg, intptr_t param1, intptr_t param2 ) +{ + int __retval = _call( WASERVICEFACTORY_SERVICENOTIFY, (int)0, msg, param1, param2 ); + return __retval; +} + +// ---------------------------------------------------------------------------- + +#endif // __WASERVICEFACTORY_H |