From 20d28e80a5c861a9d5f449ea911ab75b4f37ad0d Mon Sep 17 00:00:00 2001 From: Jef Date: Tue, 24 Sep 2024 14:54:57 +0200 Subject: Initial community commit --- Src/omBrowser/browserFactory.cpp | 90 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 Src/omBrowser/browserFactory.cpp (limited to 'Src/omBrowser/browserFactory.cpp') diff --git a/Src/omBrowser/browserFactory.cpp b/Src/omBrowser/browserFactory.cpp new file mode 100644 index 00000000..90ec7c9f --- /dev/null +++ b/Src/omBrowser/browserFactory.cpp @@ -0,0 +1,90 @@ +#include "./browserFactory.h" +#include "./browserObject.h" + + +FOURCC OmBrowserFactory::GetServiceType() +{ + return WaSvc::UNIQUE; +} + +const char *OmBrowserFactory::GetServiceName() +{ + return "OmBrowser Object"; +} + +const char *OmBrowserFactory::GetTestString() +{ + return NULL; +} + +GUID OmBrowserFactory::GetGUID() +{ + return OBJ_OmBrowser; +} + + +void *OmBrowserFactory::GetInterface( int global_lock ) +{ + OmBrowserObject *browserObject = NULL; + + HRESULT hr = OmBrowserObject::CreateInstance( &browserObject ); + if ( FAILED( hr ) ) + browserObject = NULL; + + return browserObject; +} + +int OmBrowserFactory::ReleaseInterface( void *ifc ) +{ + obj_ombrowser *object = (obj_ombrowser *)ifc; + if ( object != NULL ) + object->Release(); + + return 1; +} + + +int OmBrowserFactory::SupportNonLockingInterface() +{ + return 1; +} + +int OmBrowserFactory::ServiceNotify(int msg, int param1, int param2) +{ + return 1; +} + + +HRESULT OmBrowserFactory::Register( api_service *service ) +{ + if ( service == NULL ) + return E_INVALIDARG; + + service->service_register( this ); + + return S_OK; +} + +HRESULT OmBrowserFactory::Unregister( api_service *service ) +{ + if ( service == NULL ) + return E_INVALIDARG; + + service->service_deregister( this ); + + return S_OK; +} + + +#define CBCLASS OmBrowserFactory +START_DISPATCH; +CB( WASERVICEFACTORY_GETSERVICETYPE, GetServiceType ) +CB( WASERVICEFACTORY_GETSERVICENAME, GetServiceName ) +CB( WASERVICEFACTORY_GETGUID, GetGUID ) +CB( WASERVICEFACTORY_GETINTERFACE, GetInterface ) +CB( WASERVICEFACTORY_SUPPORTNONLOCKINGGETINTERFACE, SupportNonLockingInterface ) +CB( WASERVICEFACTORY_RELEASEINTERFACE, ReleaseInterface ) +CB( WASERVICEFACTORY_GETTESTSTRING, GetTestString ) +CB( WASERVICEFACTORY_SERVICENOTIFY, ServiceNotify ) +END_DISPATCH; +#undef CBCLASS \ No newline at end of file -- cgit