// SerialEMCCD.idl : IDL source for SerialEMCCD.dll // // This file will be processed by the MIDL tool to // produce the type library (SerialEMCCD.tlb) and marshalling code. import "oaidl.idl"; import "ocidl.idl"; [ object, uuid(E5453450-18B4-4B4C-A25E-81364F75A193), dual, helpstring("IDMCamera Interface"), pointer_default(unique) ] interface IDMCamera : IDispatch { [id(3), helpstring("method GetTestArray")] HRESULT GetTestArray([in]long width, [in]long height, [in, out]long *retSize, [out, size_is(*retSize)]short array[], [out]long *time, [out]unsigned long *receiptTime, [out]unsigned long *returnTime); [id(5), helpstring("method ExecuteScript")] HRESULT ExecuteScript([in]long size, [in, size_is(size)]long script[], [in]BOOL selectCamera, [out]double *retval); [id(6), helpstring("method SetDebugMode")] HRESULT SetDebugMode([in]long debug); [id(7), helpstring("method SetDMVersion")] HRESULT SetDMVersion([in]long version); [id(8), helpstring("method SetCurrentCamera")] HRESULT SetCurrentCamera([in]long camera); [id(9), helpstring("method QueueScript")] HRESULT QueueScript([in]long size, [in, size_is(size)]long script[]); [id(10), helpstring("method GetAcquiredImage")] HRESULT GetAcquiredImage([out, size_is(*arrSize)]short array[], [in, out]long *arrSize, [out]long *width, [out]long *height, [in]long processing, [in]double exposure, [in]long binning, [in]long top, [in]long left, [in]long bottom, [in]long right, [in]long shutter, [in]double settling, [in]long shutterDelay, [in]long divideBy2, [in]long corrections); [id(11), helpstring("method DarkReference")] HRESULT GetDarkReference([out, size_is(*arrSize)]short array[], [in, out]long *arrSize, [out]long *width, [out]long *height, [in]double exposure, [in]long binning, [in]long top, [in]long left, [in]long bottom, [in]long right, [in]long shutter, [in]double settling, [in]long divideBy2, [in]long corrections); [id(12), helpstring("method GetGainReference")] HRESULT GetGainReference([out, size_is(*arrSize)]float array[], [in, out]long *arrSize, [out]long *width, [out]long *height, [in]long binning); [id(13), helpstring("method SelectCamera")] HRESULT SelectCamera([in]long camera); [id(14), helpstring("method GetNumberOfCameras")] HRESULT GetNumberOfCameras([out]long *numCameras); [id(15), helpstring("method IsCameraInserted")] HRESULT IsCameraInserted([in]long camera, [out]BOOL *inserted); [id(16), helpstring("method InsertCamera")] HRESULT InsertCamera([in]long camera, [in]BOOL state); [id(17), helpstring("method GetDMVersion")] HRESULT GetDMVersion([out]long *version); [id(18), helpstring("method GetDMCapabilities")] HRESULT GetDMCapabilities([out]BOOL *canSelectShutter, [out]BOOL *canSetSettling, [out]BOOL *openShutterWorks); [id(19), helpstring("method SetShutterNormallyClosed")] HRESULT SetShutterNormallyClosed([in]long camera, [in]long shutter); [id(20), helpstring("method SetNoDMSettling")] HRESULT SetNoDMSettling([in]long camera); [id(21), helpstring("method GetDSProperties")] HRESULT GetDSProperties([in]long timeout, [in]double addedFlyback, [in]double margin, [out]double *flyback, [out]double *lineFreq, [out]double *rotOffset, [out]long *doFlip); [id(22), helpstring("method AcquireDSImage")] HRESULT AcquireDSImage([out, size_is(*arrSize)]short array[], [in, out]long *arrSize, [in, out]long *width, [in, out]long *height, [in]double rotation, [in]double pixelTime, [in]long lineSync, [in]long continuous, [in]long numChan, [in, size_is(numChan)]long channels[], [in]long divideBy2); [id(23), helpstring("method ReturnDSChannel")] HRESULT ReturnDSChannel([out, size_is(*arrSize)]short array[], [in, out]long *arrSize, [in, out]long *width, [in, out]long *height, [in]long channel, [in]long divideBy2); [id(24), helpstring("method StopDSAcquisition")] HRESULT StopDSAcquisition(); [id(25), helpstring("method SetReadMode")] HRESULT SetReadMode([in]long mode, [in]double scaling); [id(26), helpstring("method SetK2Parameters")] HRESULT SetK2Parameters([in]long mode, [in]double scaling, [in]long hardwareProc, [in]BOOL doseFrac, [in]double frameTime, [in]BOOL alignFrames, [in]BOOL saveFrames, [in]long filtSize, [in, size_is(filtSize)]long filter[]); [id(27), helpstring("method SetupFileSaving")] HRESULT SetupFileSaving([in]long rotationFlip, [in]BOOL filePerImage, [in]double pixelSize, [in]long nameSize, [in, size_is(nameSize)]long names[], [out]long *error); [id(28), helpstring("method GetFileSaveResult")] HRESULT GetFileSaveResult([out]long *numSaved, [out]long *error); [id(29), helpstring("method SetupFileSaving2")] HRESULT SetupFileSaving2([in]long rotationFlip, [in]BOOL filePerImage, [in]double pixelSize, [in]long flags, [in]double dummy1, [in]double dummy2, [in]double dummy3, [in]double dummy4, [in]long nameSize, [in, size_is(nameSize)]long names[], [out]long *error); [id(30), helpstring("method GetDefectList")] HRESULT GetDefectList([out, size_is(*arrSize)]short xyPairs[], [in, out]long *arrSize, [out]long *numPoints, [out]long *numTotal); [id(31), helpstring("method SetK2Parameters2")] HRESULT SetK2Parameters2([in]long mode, [in]double scaling, [in]long hardwareProc, [in]BOOL doseFrac, [in]double frameTime, [in]BOOL alignFrames, [in]BOOL saveFrames, [in]long rotationFlip, [in]long flags, [in]double dummy1, [in]double dummy2, [in]double dummy3, [in]double dummy4, [in]long filtSize, [in, size_is(filtSize)]long filter[]); [id(32), helpstring("method StopContinuousCamera")] HRESULT StopContinuousCamera(); [id(33), helpstring("method GetPluginVersion")] HRESULT GetPluginVersion([out]long *version); [id(34), helpstring("method GetLastError")] HRESULT GetLastError([out]long *error); [id(35), helpstring("method FreeK2GainReference")] HRESULT FreeK2GainReference([in]long which); [id(36), helpstring("method IsGpuAvailable")] HRESULT IsGpuAvailable([in]long gpuNum, [out]long *available, [out]double *gpuMemory); [id(37), helpstring("method SetupFrameAligning")] HRESULT SetupFrameAligning([in]long aliBinning, [in]double rad2Filt1, [in]double rad2Filt2, [in]double rad2Filt3, [in]double sigma2Ratio, [in]double truncLimit, [in]long alignFlags, [in]long gpuFlags, [in]long numAllVsAll, [in]long groupSize, [in]long shiftLimit, [in]long antialiasType, [in]long refineIter, [in]double stopIterBelow, [in]double refRad2, [in]long nSumandGrab, [in]long dumInt1, [in]long dumInt2, [in]double dumDbl1, [in]long stringSize, [in, size_is(stringSize)]long strings[], [out]long *error); [id(38), helpstring("method FrameAlignResults")] HRESULT FrameAlignResults([out]double *rawDist, [out]double *smoothDist, [out]double *resMean, [out]double *maxResMax, [out]double *meanRawMax, [out]double *maxRawMax, [out]long *crossHalf, [out]long *crossQuarter, [out]long *crossEighth, [out]long *halfNyq, [out]long *frameStartEnd, [out]double *dumDbl1, [out]double *dumDbl2); [id(39), helpstring("method ReturnDeferredSum")] HRESULT ReturnDeferredSum([out, size_is(*arrSize)]short array[], [in, out]long *arrSize, [in, out]long *width, [out]long *height); [id(40), helpstring("method MakeAlignComFile")] HRESULT MakeAlignComFile([in]long flags, [in]long dumInt1, [in]double dumDbl1, [in]double dumDbl2, [in]long stringSize, [in, size_is(stringSize)]long strings[], [out]long *error); [id(41), helpstring("method WaitUntilReady")] HRESULT WaitUntilReady([in]long which); [id(42), helpstring("method GetLastDoseRate")] HRESULT GetLastDoseRate([out]double *doseRate); [id(43), helpstring("method SaveFrameMdoc")] HRESULT SaveFrameMdoc([in]long size, [in, size_is(size)]long mdoc[], [in]long flags); [id(44), helpstring("method GetDMVersionAndBuild")] HRESULT GetDMVersionAndBuild([out]long *version, [out]long *build); [id(45), helpstring("method GetTiltSumProperties")] HRESULT GetTiltSumProperties([out]long *index, [out]long *numFrames, [out]double *angle, [out]long *firstSlice, [out]long *lastSlice, [out]long *dumInt1, [out]double *dumDbl1, [out]double *dumDbl2); // Add new functions at the end. Be sure to build 32 and 64-bit versions before // trying to run through COM from 64-bit, since both proxy-stubs are needed }; [ uuid(7F169544-CC69-45AD-8F60-7A73B2749980), version(1.0), helpstring("SerialEMCCD 1.0 Type Library") ] library SERIALEMCCDLib { importlib("stdole32.tlb"); importlib("stdole2.tlb"); [ uuid(E3C017CA-38F5-49D2-8D1F-55024C8038C2), helpstring("DMCamera Class") ] coclass DMCamera { [default] interface IDMCamera; }; };