@@ -6755,37 +6755,44 @@ PVOID PhFileReadAllText(
6755
6755
return string ;
6756
6756
}
6757
6757
6758
- PVOID PhGetClassObject (
6758
+ _Success_ (return == S_OK )
6759
+ HRESULT PhGetClassObject (
6759
6760
_In_ PWSTR DllName ,
6760
6761
_In_ REFCLSID Rclsid ,
6761
- _In_ REFIID Riid
6762
+ _In_ REFIID Riid ,
6763
+ _Out_ PVOID * Ppv
6762
6764
)
6763
6765
{
6764
- HRESULT (WINAPI * DllGetClassObject_I )(_In_ REFCLSID rclsid , _In_ REFIID riid , _Out_ PVOID * ppv ) = NULL ;
6766
+ HRESULT status = S_FALSE ;
6767
+ HRESULT (WINAPI * DllGetClassObject_I )(_In_ REFCLSID rclsid , _In_ REFIID riid , _COM_Outptr_ PVOID * ppv );
6765
6768
IClassFactory * classFactory ;
6766
- PVOID moduleHandle = NULL ;
6767
- PVOID classInterface = NULL ;
6769
+ PVOID moduleHandle ;
6768
6770
6769
6771
if (!(moduleHandle = PhGetLoaderEntryDllBase (DllName )))
6770
- moduleHandle = LoadLibrary ( DllName );
6771
-
6772
- if (! moduleHandle )
6773
- return NULL ;
6772
+ {
6773
+ if (!( moduleHandle = LoadLibrary ( DllName )))
6774
+ return ERROR_MOD_NOT_FOUND ;
6775
+ }
6774
6776
6775
6777
if (!(DllGetClassObject_I = PhGetDllBaseProcedureAddress (moduleHandle , "DllGetClassObject" , 0 )))
6776
- return NULL ;
6778
+ return ERROR_PROC_NOT_FOUND ;
6777
6779
6778
- if (FAILED (DllGetClassObject_I (Rclsid , & IID_IClassFactory , & classFactory )))
6779
- return NULL ;
6780
+ status = DllGetClassObject_I (
6781
+ Rclsid ,
6782
+ & IID_IClassFactory ,
6783
+ & classFactory
6784
+ );
6780
6785
6781
- if (FAILED (IClassFactory_CreateInstance (classFactory , NULL , Riid , & classInterface )))
6782
- {
6783
- IClassFactory_Release (classFactory );
6784
- return NULL ;
6785
- }
6786
- else
6787
- {
6788
- IClassFactory_Release (classFactory );
6789
- return classInterface ;
6790
- }
6786
+ if (FAILED (status ))
6787
+ return status ;
6788
+
6789
+ status = IClassFactory_CreateInstance (
6790
+ classFactory ,
6791
+ NULL ,
6792
+ Riid ,
6793
+ Ppv
6794
+ );
6795
+
6796
+ IClassFactory_Release (classFactory );
6797
+ return status ;
6791
6798
}
0 commit comments