-- Automatically generated by HaskellDirect (ihc.exe), snapshot 241003 -- Created: 11:59 FLE Standard Time, Tuesday 02 December, 2003 -- Command line: -iidl -fcom idl/ServProv.idl module ServProv ( queryService , IServiceProvider , IServiceProvider_ , iidIServiceProvider ) where import Prelude (fromEnum, toEnum) import qualified Prelude import qualified Com (IUnknown, IID, mkIID, marshallGUID, marshallIID, invokeAndCheck, readIUnknown, GUID) import qualified Foreign.ForeignPtr (withForeignPtr) import qualified Foreign.Ptr (Ptr) import qualified HDirect (sizeofForeignPtr, allocBytes, free, doThenFree) import qualified Int (Int32) import qualified Wtypes (REFGUID) -- -------------------------------------------------- -- -- interface IServiceProvider -- -- -------------------------------------------------- data IServiceProvider_ a = IServiceProvider__ type IServiceProvider a = Com.IUnknown (IServiceProvider_ a) iidIServiceProvider :: Com.IID (IServiceProvider ()) iidIServiceProvider = Com.mkIID "{6d5140c1-7436-11ce-8034-00aa006009fa}" queryService :: Wtypes.REFGUID -> Com.IID (Com.IUnknown i0) -> IServiceProvider a0 -> Prelude.IO (Com.IUnknown i0) queryService guidService riid iptr = do ppvObject <- HDirect.allocBytes (Prelude.fromIntegral HDirect.sizeofForeignPtr) guidService <- Com.marshallGUID guidService riid <- Com.marshallIID riid Com.invokeAndCheck (\ methPtr iptr -> Foreign.ForeignPtr.withForeignPtr guidService (\ guidService -> Foreign.ForeignPtr.withForeignPtr riid (\ riid -> prim_ServProv_queryService methPtr iptr guidService riid ppvObject))) 3 iptr HDirect.doThenFree HDirect.free (Com.readIUnknown Prelude.False) ppvObject foreign import stdcall "dynamic" prim_ServProv_queryService :: Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr () -> Foreign.Ptr.Ptr Com.GUID -> Foreign.Ptr.Ptr (Com.IID (Com.IUnknown i0)) -> Foreign.Ptr.Ptr (Foreign.Ptr.Ptr (Com.IUnknown i0)) -> Prelude.IO Int.Int32