#ifndef UNREFERENCED_PARAMETER #define UNREFERENCED_PARAMETER(P) \ { \ (P) = (P); \ } #endif #define IMAGE_ITEM 0 #define IMAGE_FOLDER_CLOSED 1 #define IMAGE_FOLDER_OPEN 2 /* menu positions */ #define FILE_MENU_POS 0 #define VIEW_MENU_POS 1 #define TABLES_MENU_POS 2 #define OPTIONS_MENU_POS 3 #define DATASET_MENU_POS 4 #define VIEWOPT_MENU_POS 5 #define PROCESS_MENU_POS 6 #define DICOM_ERROR_USER_CLIENT_ADDRESS 900 #define DICOM_ERROR_USER_CLIENT_TITLE 901 #define DICOM_ERROR_USER_SERVER_TITLE 902 #define SCROLL_RATIO 10 #ifndef RECTWIDTH #define RECTWIDTH(lpRect) (((LPRECT) lpRect)->right -((LPRECT) lpRect)->left) #define RECTHEIGHT(lpRect) (((LPRECT) lpRect)->bottom -((LPRECT) lpRect)->top) #endif typedef struct _CODETEXT { L_INT nCode; L_CHAR *pszText; } CODETEXT, *pCODETEXT; typedef struct tagDATA { L_CHAR szFilename[L_MAXPATH];/* File name to load. */ BITMAPHANDLE Bitmap; /* BITMAP HANDLE to hold image. */ HDICOMDS hDicomDS; /* handle to Dicom DS */ WNDPROC OldProc; L_BOOL bLoaded; L_BOOL bModule; L_BOOL bHighLevel; L_UINT16 LoadFlags; L_UINT16 SaveFlags; L_INT32 nSaveCompression; L_INT32 nSavePhotometric; L_INT32 nSaveBitsPerPixel; L_INT32 nSaveQFactor; pDICOMELEMENT pCurrentElement; L_UINT32 nCurrentModule; HIMAGELIST hImageList; HINSTANCE hInst; HBITMAPLIST hBitmapList; L_UINT32 BitmapListCount; L_UINT32 BitmapListIndex; RECT rcDst; L_BOOL bAnimationLoop; L_BOOL bAnimationPlay; L_BOOL bFit; L_INT Zoom; L_BOOL bImage; L_INT Width; L_INT Height; L_BOOL bChild; L_BOOL bSequence; L_UINT32 lTagCode; L_UINT32 lModuleCode; /* scroll stuff */ L_INT nVScrollMax; L_INT nVScrollPos; L_INT nVScrollStep; L_INT nHScrollMax; L_INT nHScrollPos; L_INT nHScrollStep; L_INT cxClient; L_INT cyClient; L_UINT32 lItemCount; L_CHAR L_FAR* pItems; } DATA; DATA Data; /* DATA structure. */ L_CHAR m_szPath[MAX_PATH]; HDICOMDS m_hDir; L_BOOL m_bHighLevel; L_BOOL m_bDICOMDir; LRESULT CALLBACK DicomDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam); // Deletes the selected element. L_VOID DeleteElement (HDICOMDS hDir, pDICOMELEMENT pKey, L_UINT32 nTag); // Find a specify key into DICOMDIR file. pDICOMELEMENT FindKey (HDICOMDS hDir, L_CHAR *pszValue, pDICOMELEMENT pParent); // Copy an element from DICOM file to DICOMDIR file. L_VOID CopyElement (pDICOMELEMENT pElementDir, HDICOMDS hDir, HDICOMDS hDS, L_UINT32 nTag); // Copy an element from DICOM file to DICOMDIR file. This function is used when the tag number is not the same. L_VOID CopyElementEx (pDICOMELEMENT pElementDir, HDICOMDS hDir, HDICOMDS hDS, L_UINT32 nTagDir, L_UINT32 nTagDS); // Create DICOMDIR file and insert new key if it is necessary. L_BOOL CreateDir (HDICOMDS hDir, HDICOMDS hDS, L_CHAR *pszImag); // Adds information from DICOM file to DICOMDIR file. L_BOOL AddToDICOMDIR (HDICOMDS hDir, L_CHAR *pszImagPath); // Display the aplication status. L_VOID DisplayStatus (L_CHAR *pszStatus, HWND hDlg); // Browse Button L_VOID BrowseButton (HWND hDlg); // Find the DICOM files in the selected directory. L_BOOL FindDICOMFiles (L_CHAR *pszDir, HWND hDlg); // Get the selected folder. L_BOOL GetFolder (char* szSelectedFolder, const char* lpszTitle, const HWND hwndOwner, const char* strRootFolder, const char* strStartFolder); // Insert a new element in TreeControl. HTREEITEM InsertTreeElement (HWND hDlg, HTREEITEM hParentTree, pDICOMELEMENT pElement); // Fill subtree items. L_VOID FillTree (HWND hDlg, HDICOMDS hDir, HTREEITEM hParentTree, pDICOMELEMENT pParentElement); // Fill subtree items. L_VOID FillSubTree (HWND hDlg, HDICOMDS hDir, HTREEITEM hParentTree, pDICOMELEMENT pParentElement); // Display the element value. L_VOID ShowValue (HWND hDlg, HDICOMDS hDir, HTREEITEM hItem); L_VOID HandleNotify (HWND hDlg, WPARAM idCtl, LPNMHDR pNMHDR); // Convert error code in message. L_VOID ConvertError (L_INT nError, L_CHAR *pszError); L_VOID DrawImageBtn(HWND hDlg, LPDRAWITEMSTRUCT pds); L_VOID PaintBitmap(HDC hDC, LPRECT pDest, pBITMAPHANDLE pBitmap); //Displays the bitmap L_VOID DisplayBitmap(HWND hDlg, pDICOMELEMENT pElement, HDICOMDS hDir); L_INT L_FAR L_EXPORT LoadCallback(pFILEINFO pFileInfo, pBITMAPHANDLE pBitmap, L_UCHAR L_FAR *pBuffer, L_UINT uFlags, L_INT nRow, L_INT nLines, L_VOID L_FAR* pUserData); L_VOID DisplayImage(HWND hDlg, pDICOMELEMENT pElement, HDICOMDS hDir); L_VOID UpdateScrollBars(HWND hDlg); L_VOID MatchAspectRatio (LPRECT pRect, L_INT nWidth, L_INT nHeight);