public static bool Import() /* * - Import() retreives the X-Tensions API function pointers * - it should be called once upon startup (in XT_Init) * - returns true upon success, false upon failure */ { try { var moduleHandle = NativeMethods.GetModuleHandle(IntPtr.Zero); XWFOutputMessage = GetMethodDelegate <XWFOutputMessageDelegate>( moduleHandle, "XWF_OutputMessage"); _XWFGetVolumeName = GetMethodDelegate <XWFGetVolumeNameDelegate>( moduleHandle, "XWF_GetVolumeName"); XWFCreateFile = GetMethodDelegate <XWFCreateFileDelegate>( moduleHandle, "XWF_CreateFile"); XWFGetSize = GetMethodDelegate <XWFGetSizeDelegate>( moduleHandle, "XWF_GetSize"); XWFRead = GetMethodDelegate <XWFReadDelegate>( moduleHandle, "XWF_Read"); _XWFGetVolumeInformation = GetMethodDelegate <XWFGetVolumeInformationDelegate>( moduleHandle, "XWF_GetVolumeInformation"); _XWFGetSectorContents = GetMethodDelegate <XWFGetSectorContentsDelegate>( moduleHandle, "XWF_GetSectorContents"); XWFSelectVolumeSnapshot = GetMethodDelegate <XWFSelectVolumeSnapshotDelegate>( moduleHandle, "XWF_SelectVolumeSnapshot"); XWFGetItemCount = GetMethodDelegate <XWFGetItemCountDelegate>( moduleHandle, "XWF_GetItemCount"); XWFCreateItem = GetMethodDelegate <XWFCreateItemDelegate>( moduleHandle, "XWF_CreateItem"); XWFGetItemName = GetMethodDelegate <XWFGetItemNameDelegate>( moduleHandle, "XWF_GetItemName"); XWFGetItemSize = GetMethodDelegate <XWFGetItemSizeDelegate>( moduleHandle, "XWF_GetItemSize"); XWFSetItemSize = GetMethodDelegate <XWFSetItemSizeDelegate>( moduleHandle, "XWF_SetItemSize"); XWFGetItemOfs = GetMethodDelegate <XWFGetItemOfsDelegate>( moduleHandle, "XWF_GetItemOfs"); XWFSetItemOfs = GetMethodDelegate <XWFSetItemOfsDelegate>( moduleHandle, "XWF_SetItemOfs"); XWFGetItemInformation = GetMethodDelegate <XWFGetItemInformationDelegate>( moduleHandle, "XWF_GetItemInformation"); XWFSetItemInformation = GetMethodDelegate <XWFSetItemInformationDelegate>( moduleHandle, "XWF_SetItemInformation"); _XWFGetItemType = GetMethodDelegate <XWFGetItemTypeDelegate>( moduleHandle, "XWF_GetItemType"); XWFSetItemType = GetMethodDelegate <XWFSetItemTypeDelegate>( moduleHandle, "XWF_SetItemType"); XWFGetItemParent = GetMethodDelegate <XWFGetItemParentDelegate>( moduleHandle, "XWF_GetItemParent"); XWFSetItemParent = GetMethodDelegate <XWFSetItemParentDelegate>( moduleHandle, "XWF_SetItemParent"); _XWFGetReportTableAssocs = GetMethodDelegate <XWFGetReportTableAssocsDelegate>( moduleHandle, "XWF_GetReportTableAssocs"); XWFAddToReportTable = GetMethodDelegate <XWFAddToReportTableDelegate>( moduleHandle, "XWF_AddToReportTable"); XWFGetComment = GetMethodDelegate <XWFGetCommentDelegate>( moduleHandle, "XWF_GetComment"); XWFAddComment = GetMethodDelegate <XWFAddCommentDelegate>( moduleHandle, "XWF_AddComment"); XWFGetHashValue = GetMethodDelegate <XWFGetHashValueDelegate>( moduleHandle, "XWF_GetHashValue"); XWFShowProgress = GetMethodDelegate <XWFShowProgressDelegate>( moduleHandle, "XWF_ShowProgress"); XWFSetProgressPercentage = GetMethodDelegate <XWFSetProgressPercentageDelegate>( moduleHandle, "XWF_SetProgressPercentage"); XWFSetProgressDescription = GetMethodDelegate <XWFSetProgressDescriptionDelegate>( moduleHandle, "XWF_SetProgressDescription"); XWFShouldStop = GetMethodDelegate <XWFShouldStopDelegate>( moduleHandle, "XWF_ShouldStop"); XWFHideProgress = GetMethodDelegate <XWFHideProgressDelegate>( moduleHandle, "XWF_HideProgress"); XWFOpenItem = GetMethodDelegate <XWFOpenItemDelegate>( moduleHandle, "XWF_OpenItem"); XWFClose = GetMethodDelegate <XWFCloseDelegate>( moduleHandle, "XWF_Close"); XWFCreateEvObj = GetMethodDelegate <XWFCreateEvObjDelegate>( moduleHandle, "XWF_CreateEvObj"); XWFSearch = GetMethodDelegate <XWFSearchDelegate>( moduleHandle, "XWF_Search"); _XWFSearchWithPtrToPages = GetMethodDelegate <XWFSearchWithPtrToPagesDelegate>( moduleHandle, "XWF_Search"); XWFCreateContainer = GetMethodDelegate <XWFCreateContainerDelegate>( moduleHandle, "XWF_CreateContainer"); XWFCopyToContainer = GetMethodDelegate <XWFCopyToContainerDelegate>( moduleHandle, "XWF_CopyToContainer"); XWFCloseContainer = GetMethodDelegate <XWFCloseContainerDelegate>( moduleHandle, "XWF_CloseContainer"); } catch { return(false); } return(true); }
/// <summary> /// Retrieves the X-Tensions API function pointers. Should be called once at /// startup (in XT_Init). /// </summary> /// <returns>Returns true on success, false on failure.</returns> public static bool Import() { try { // Get a handle for the XWF API. IntPtr moduleHandle = NativeMethods.GetModuleHandle(IntPtr.Zero); XWF_OutputMessage = GetMethodDelegate <XWFOutputMessageDelegate>( moduleHandle, "XWF_OutputMessage"); XWF_GetSize = GetMethodDelegate <XWFGetSizeDelegate>( moduleHandle, "XWF_GetSize"); XWF_GetVolumeName = GetMethodDelegate <XWFGetVolumeNameDelegate>( moduleHandle, "XWF_GetVolumeName"); XWF_GetVolumeInformation = GetMethodDelegate <XWFGetVolumeInformationDelegate>( moduleHandle, "XWF_GetVolumeInformation"); XWF_GetBlock = GetMethodDelegate <XWFGetBlockDelegate>( moduleHandle, "XWF_GetBlock"); XWF_SetBlock = GetMethodDelegate <XWFSetBlockDelegate>( moduleHandle, "XWF_SetBlock"); XWF_GetSectorContents = GetMethodDelegate <XWFGetSectorContentsDelegate>( moduleHandle, "XWF_GetSectorContents"); /* * XWFOpenVolume = GetMethodDelegate<XWFOpenVolumeDelegate>( * moduleHandle, "XWF_OpenVolume"); */ XWF_OpenItem = GetMethodDelegate <XWFOpenItemDelegate>( moduleHandle, "XWF_OpenItem"); XWF_Close = GetMethodDelegate <XWFCloseDelegate>( moduleHandle, "XWF_Close"); XWF_Read = GetMethodDelegate <XWFReadDelegate>( moduleHandle, "XWF_Read"); /* * XWFWrite = GetMethodDelegate<XWFWriteDelegate>( * moduleHandle, "XWF_Write"); */ XWF_SectorIO = GetMethodDelegate <XWFSectorIODelegate>( moduleHandle, "XWF_SectorIO"); XWF_GetCaseProp = GetMethodDelegate <XWFGetCasePropDelegate>( moduleHandle, "XWF_GetCaseProp"); XWF_GetFirstEvObj = GetMethodDelegate <XWFGetFirstEvObjDelegate>( moduleHandle, "XWF_GetFirstEvObj"); XWF_GetNextEvObj = GetMethodDelegate <XWFGetNextEvObjDelegate>( moduleHandle, "XWF_GetNextEvObj"); /* * XWFDeleteEvObj = GetMethodDelegate<XWFDeleteEvObjDelegate>( * moduleHandle, "XWF_DeleteEvObj"); */ XWF_CreateEvObj = GetMethodDelegate <XWFCreateEvObjDelegate>( moduleHandle, "XWF_CreateEvObj"); XWF_OpenEvObj = GetMethodDelegate <XWFOpenEvObjDelegate>( moduleHandle, "XWF_OpenEvObj"); XWF_CloseEvObj = GetMethodDelegate <XWFCloseEvObjDelegate>( moduleHandle, "XWF_CloseEvObj"); XWF_GetEvObjProp = GetMethodDelegate <XWFGetEvObjPropDelegate>( moduleHandle, "XWF_GetEvObjProp"); /* * XWFSetEvObjProp = GetMethodDelegate<XWFSetEvObjPropDelegate>( * moduleHandle, "XWF_SetEvObjProp"); */ XWF_GetEvObj = GetMethodDelegate <XWFGetEvObjDelegate>( moduleHandle, "XWF_GetEvObj"); XWF_GetReportTableInfo = GetMethodDelegate <XWFGetReportTableInfoDelegate>( moduleHandle, "XWF_GetReportTableInfo"); XWF_GetEvObjReportTableAssocs = GetMethodDelegate <XWFGetEvObjReportTableAssocsDelegate>( moduleHandle, "XWF_GetEvObjReportTableAssocs"); XWF_SelectVolumeSnapshot = GetMethodDelegate <XWFSelectVolumeSnapshotDelegate>( moduleHandle, "XWF_SelectVolumeSnapshot"); XWF_GetVSProp = GetMethodDelegate <XWFGetVSPropDelegate>( moduleHandle, "XWF_GetVSProp"); XWF_GetItemCount = GetMethodDelegate <XWFGetItemCountDelegate>( moduleHandle, "XWF_GetItemCount"); XWF_GetFileCount = GetMethodDelegate <XWFGetFileCountDelegate>( moduleHandle, "XWF_GetFileCount"); /* * XWFGetSpecialItemID = GetMethodDelegate<XWFGetSpecialItemIDDelegate>( * moduleHandle, "XWF_GetSpecialItemID"); */ XWF_CreateItem = GetMethodDelegate <XWFCreateItemDelegate>( moduleHandle, "XWF_CreateItem"); XWF_CreateFile = GetMethodDelegate <XWFCreateFileDelegate>( moduleHandle, "XWF_CreateFile"); XWF_GetItemName = GetMethodDelegate <XWFGetItemNameDelegate>( moduleHandle, "XWF_GetItemName"); /* * XWFSetItemName = GetMethodDelegate<XWFSetItemNameDelegate>( * moduleHandle, "XWF_SetItemName"); */ XWF_FindItem1 = GetMethodDelegate <XWFFindItem1Delegate>( moduleHandle, "XWF_FindItem1"); XWF_GetItemSize = GetMethodDelegate <XWFGetItemSizeDelegate>( moduleHandle, "XWF_GetItemSize"); XWF_SetItemSize = GetMethodDelegate <XWFSetItemSizeDelegate>( moduleHandle, "XWF_SetItemSize"); XWF_GetItemOfs = GetMethodDelegate <XWFGetItemOfsDelegate>( moduleHandle, "XWF_GetItemOfs"); XWF_SetItemOfs = GetMethodDelegate <XWFSetItemOfsDelegate>( moduleHandle, "XWF_SetItemOfs"); XWF_GetItemInformation = GetMethodDelegate <XWFGetItemInformationDelegate>( moduleHandle, "XWF_GetItemInformation"); XWF_SetItemInformation = GetMethodDelegate <XWFSetItemInformationDelegate>( moduleHandle, "XWF_SetItemInformation"); XWF_GetItemType = GetMethodDelegate <XWFGetItemTypeDelegate>( moduleHandle, "XWF_GetItemType"); XWF_SetItemType = GetMethodDelegate <XWFSetItemTypeDelegate>( moduleHandle, "XWF_SetItemType"); XWF_GetItemParent = GetMethodDelegate <XWFGetItemParentDelegate>( moduleHandle, "XWF_GetItemParent"); XWF_SetItemParent = GetMethodDelegate <XWFSetItemParentDelegate>( moduleHandle, "XWF_SetItemParent"); XWF_GetReportTableAssocs = GetMethodDelegate <XWFGetReportTableAssocsDelegate>( moduleHandle, "XWF_GetReportTableAssocs"); XWF_AddToReportTable = GetMethodDelegate <XWFAddToReportTableDelegate>( moduleHandle, "XWF_AddToReportTable"); XWF_GetComment = GetMethodDelegate <XWFGetCommentDelegate>( moduleHandle, "XWF_GetComment"); XWF_AddComment = GetMethodDelegate <XWFAddCommentDelegate>( moduleHandle, "XWF_AddComment"); XWF_GetExtractedMetadata = GetMethodDelegate <XWFGetExtractedMetadataDelegate>( moduleHandle, "XWF_GetExtractedMetadata"); XWF_AddExtractedMetadata = GetMethodDelegate <XWFAddExtractedMetadataDelegate>( moduleHandle, "XWF_AddExtractedMetadata"); XWF_GetHashValue = GetMethodDelegate <XWFGetHashValueDelegate>( moduleHandle, "XWF_GetHashValue"); /* * XWFSetHashValue = GetMethodDelegate<XWFSetHashValueDelegate>( * moduleHandle, "XWF_SetHashValue"); */ /* * XWFSetItemDataRuns = GetMethodDelegate<XWFSetItemDataRunsDelegate>( * moduleHandle, "XWF_SetItemDataRuns"); */ /* * // DEPRECIATED IN V18.9 * XWF_GetMetadata = GetMethodDelegate<XWFGetMetadataDelegate>( * moduleHandle, "XWF_GetMetadata"); */ XWF_GetMetadataEx = GetMethodDelegate <XWFGetMetadataExDelegate>( moduleHandle, "XWF_GetMetadataEx"); XWF_GetRasterImage = GetMethodDelegate <XWFGetRasterImageDelegate>( moduleHandle, "XWF_GetRasterImage"); XWF_Search = GetMethodDelegate <XWFSearchDelegate>( moduleHandle, "XWF_Search"); XWF_SearchWithPtrToPages = GetMethodDelegate <XWFSearchWithPtrToPagesDelegate>( moduleHandle, "XWF_Search"); /* * XWFGetSearchHitCount = GetMethodDelegate<XWFGetSearchHitCountDelegate>( * moduleHandle, "XWF_GetSearchHitCount"); */ /* * XWFGetSearchHitInfo = GetMethodDelegate<XWFGetSearchHitInfoDelegate>( * moduleHandle, "XWF_GetSearchHitInfo"); */ /* * XWFAddSearchTerm = GetMethodDelegate<XWFAddSearchTermDelegate>( * moduleHandle, "XWF_AddSearchTerm"); */ XWF_GetSearchTerm = GetMethodDelegate <XWFGetSearchTermDelegate>( moduleHandle, "XWF_GetSearchTerm"); /* Todo Fix this * XWF_GetSearchTermCount * = GetMethodDelegate<XWFGetSearchTermCountDelegate>(moduleHandle, * "XWF_GetSearchTerm"); */ /* * XWFAddSearchHit = GetMethodDelegate<XWFAddSearchHitDelegate>( * moduleHandle, "XWF_AddSearchHit"); */ XWF_AddEvent = GetMethodDelegate <XWFAddEventDelegate>( moduleHandle, "XWF_AddEvent"); XWF_GetEvent = GetMethodDelegate <XWFGetEventDelegate>( moduleHandle, "XWF_GetEvent"); XWF_CreateContainer = GetMethodDelegate <XWFCreateContainerDelegate>( moduleHandle, "XWF_CreateContainer"); XWF_CopyToContainer = GetMethodDelegate <XWFCopyToContainerDelegate>( moduleHandle, "XWF_CopyToContainer"); XWF_CloseContainer = GetMethodDelegate <XWFCloseContainerDelegate>( moduleHandle, "XWF_CloseContainer"); /* * OutputMessage = GetMethodDelegate<XWFOutputMessageDelegate>( * moduleHandle, "OutputMessage"); */ XWF_GetUserInput = GetMethodDelegate <XWFGetUserInputDelegate>( moduleHandle, "XWF_GetUserInput"); XWF_ShowProgress = GetMethodDelegate <XWFShowProgressDelegate>( moduleHandle, "XWF_ShowProgress"); XWF_SetProgressPercentage = GetMethodDelegate <XWFSetProgressPercentageDelegate>( moduleHandle, "XWF_SetProgressPercentage"); XWF_SetProgressDescription = GetMethodDelegate <XWFSetProgressDescriptionDelegate>( moduleHandle, "XWF_SetProgressDescription"); XWF_ShouldStop = GetMethodDelegate <XWFShouldStopDelegate>( moduleHandle, "XWF_ShouldStop"); XWF_HideProgress = GetMethodDelegate <XWFHideProgressDelegate>( moduleHandle, "XWF_HideProgress"); XWF_ReleaseMem = GetMethodDelegate <XWFReleaseMemDelegate>( moduleHandle, "XWF_ReleaseMem"); } catch (Exception e) { HelperMethods.OutputMessage("Exception: " + e); return(false); } return(true); }