Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

62 lines
1.4 KiB

#include "wmsdkidl.h"
#include "wmwrap.h"
// Some wmvcore.dll exports (eg: WMCreateReader) are not callable via LoadLibrary/GetProcAddress,
// so we can't use our regular dllload macros. Instead, we'll wrap these calls in try-except
// blocks.
// These may be removed once the window media player is part of the build, although the linker's
// delayload stubs will still throw exceptions in low memory situations.
HRESULT WMCreateEditorWrap(IWMMetadataEditor** ppEditor)
{
HRESULT hr;
// WMSDK suports only x86
#ifdef _X86_
__try
{
hr = WMCreateEditor(ppEditor);
}
__except(EXCEPTION_EXECUTE_HANDLER)
#endif
{
hr = E_FAIL;
*ppEditor = NULL;
}
return hr;
}
HRESULT WMCreateReaderWrap(IUnknown* pUnkReserved, DWORD dwRights, IWMReader** ppReader)
{
HRESULT hr;
// WMSDK suports only x86
#ifdef _X86_
__try
{
hr = WMCreateReader(pUnkReserved, dwRights, ppReader);
}
__except(EXCEPTION_EXECUTE_HANDLER)
#endif
{
hr = E_FAIL;
*ppReader = NULL;
}
return hr;
}
HRESULT WMCreateCertificateWrap(IUnknown** ppUnkCert)
{
HRESULT hr;
#ifdef _X86_
__try
{
hr = WMCreateCertificate(ppUnkCert);
}
__except(EXCEPTION_EXECUTE_HANDLER)
#endif
{
hr = E_FAIL;
*ppUnkCert = NULL;
}
return hr;
}