winamp/Src/Wasabi/api/service/waservicefactory.h
2024-09-24 14:54:57 +02:00

110 lines
3.4 KiB
C++

// ----------------------------------------------------------------------------
// 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