diff options
Diffstat (limited to 'sal/osl/w32/module.cxx')
-rw-r--r--[-rwxr-xr-x] | sal/osl/w32/module.cxx | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/sal/osl/w32/module.cxx b/sal/osl/w32/module.cxx index 5554eadc02cc..8db826d60fc5 100755..100644 --- a/sal/osl/w32/module.cxx +++ b/sal/osl/w32/module.cxx @@ -108,6 +108,38 @@ oslModule SAL_CALL osl_loadModule(rtl_uString *strModuleName, sal_Int32 /*nRtldM } /*****************************************************************************/ +/* osl_loadModuleAscii */ +/*****************************************************************************/ +oslModule SAL_CALL osl_loadModuleAscii(const sal_Char *pModuleName, sal_Int32 nRtldMode ) +{ + (void) nRtldMode; /* avoid warnings */ + + HINSTANCE hInstance; + UINT errorMode = SetErrorMode(SEM_NOOPENFILEERRORBOX | SEM_FAILCRITICALERRORS); + oslModule ret = 0; + oslFileError nError; + + RTL_LOGFILE_TRACE1( "{ osl_loadModule start: %s", pModuleName ); + + OSL_ASSERT(pModuleName); + + hInstance = LoadLibrary(pModuleName); + if (hInstance == NULL) + hInstance = LoadLibraryEx(pModuleName, NULL, + LOAD_WITH_ALTERED_SEARCH_PATH); + + if (hInstance <= (HINSTANCE)HINSTANCE_ERROR) + hInstance = 0; + + ret = (oslModule) hInstance; + SetErrorMode(errorMode); + + RTL_LOGFILE_TRACE1( "} osl_loadModule end: %s", pModuleName ); + + return ret; +} + +/*****************************************************************************/ /* osl_getModuleHandle */ /*****************************************************************************/ |