#include "l_bitmap.h"
L_LTDLG_API L_INT L_DlgOpen(hWndOwner, pOpenFileName, pDlgParams)
L_HWND hWndOwner; |
owner of dialog |
LPOPENFILENAMEW pOpenFileName; |
pointer to a Windows OPENFILENAMEW structure |
LPOPENDLGPARAMS pDlgParams; |
pointer to a structure |
Displays the Open dialog box, and gets the options for L_LoadFile.
Parameter |
Description |
hWndOwner |
Handle of the window, which owns the dialog. |
pOpenFileName |
Windows structure. This structure is documented in the Microsoft Windows SDK documentation. For this function, you must set the following members of the OPENFILENAMEW structure: |
|
lStructSize |
|
lpstrFilter |
|
nFilterIndex |
|
lpstrFile |
|
nMaxFile |
|
lpstrFileTitle |
|
nMaxFileTitle |
|
lpstrInitialDir |
|
lpstrTitle |
|
lpstrDefExt |
|
Flags |
|
LEADTOOLS specifically sets the following flags: |
|
OFN_HIDEREADONLY |
|
OFN_ENABLEHOOK |
|
OFN_ENABLETEMPLATE |
|
OFN_ALLOWMULTISELECT is not set by LEADTOOLS automatically, but is allowed. |
|
OFN_SHOWHELP is set only if you specify a HELP callback (that is pfnCallback was not NULL). |
pDlgParams |
Pointer to a OPENDLGPARAMS structure to be updated with the values entered by the user through the dialog. Set members of this structure, before calling this function, to set the dialogs initial values. |
Note: In the Files of type, the file types listed below are only supported in 32-bit platforms:
Canon RAW Format (*.crw)
DJVU (*.djv)
Kodak Digital Camera KDC (*.kdc)
Kodak Photo CD (*.pcd)
Profession Digital Camera (*.dcr)
SUCCESS_DLG_OK |
The "OK" button was pressed, and the dialog exited successfully. |
SUCCESS_DLG_CANCEL |
The "Cancel" button was pressed, and the dialog exited successfully. |
< 1 |
An error occurred. Refer to Return Codes. |
Required DLLs and Libraries
LTDLGFILE For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application |
Functions: |
|
Topics: |
|
|
L_INT EXT_CALLBACK FileLoadCallback(LPOPENDLGFILEDATA lpFileData,L_INT nTotalPercent,L_INT nFilePercent,L_VOID* lpUserData){UNREFERENCED_PARAMETER(lpUserData);if ( nFilePercent == 100 ){MessageBox ( NULL, lpFileData->szFileName, TEXT("File Loaded"), MB_OK ) ;}if ( nTotalPercent == 100 ){MessageBox ( NULL, TEXT("File(s) Loading Completed"), TEXT("File(s) Loaded"), MB_OK ) ;}return SUCCESS ;}L_INT DlgOpenExample(HWND hWnd){OPENFILENAME OpenFileName;OPENDLGPARAMS DlgParams ;L_INT nRet ;memset ( &OpenFileName, 0, sizeof ( OPENFILENAME ) ) ;memset ( &DlgParams, 0, sizeof ( OPENDLGPARAMS ) ) ;OpenFileName.lStructSize = sizeof(OPENFILENAME);OpenFileName.lpstrInitialDir = NULL;OpenFileName.Flags = OFN_EXPLORER |OFN_ALLOWMULTISELECT ;DlgParams.uStructSize = sizeof ( OPENDLGPARAMS ) ;DlgParams.pfnFileLoadCallback = FileLoadCallback ;DlgParams.uDlgFlags = DLG_OPEN_SHOW_PROGRESSIVE |DLG_OPEN_SHOW_MULTIPAGE |DLG_OPEN_SHOW_LOADROTATED |DLG_OPEN_SHOW_LOADCOMPRESSED |DLG_OPEN_SHOW_FILEINFO |DLG_OPEN_SHOW_PREVIEW |DLG_OPEN_SHOW_DELPAGE |DLG_OPEN_SHOW_LOADOPTIONS |DLG_OPEN_VIEWTOTALPAGES |DLG_OPEN_LOADBITMAP |DLG_OPEN_GENERATETHUMBNAIL ;nRet = L_DlgInit ( DLG_INIT_COLOR ) ;if(nRet != SUCCESS && nRet != ERROR_DLG_ALREADYINITIATED)return nRet;nRet = L_DlgOpen ( hWnd, &OpenFileName, &DlgParams );if ( SUCCESS_DLG_OK == nRet ){int i = 0 ;// After using the return data you should free allocated datafor ( i = 0 ; i < DlgParams.nNumOfFiles ; i++ ){if ( NULL != DlgParams.pFileData [ i ].pBitmap ){if ( DlgParams.pFileData [ i ].pBitmap->Flags.Allocated ){L_FreeBitmap( DlgParams.pFileData [ i ].pBitmap ) ;}GlobalFree ( DlgParams.pFileData [ i ].pBitmap ) ;}if ( NULL != DlgParams.pFileData [ i ].pThumbnail ){if ( DlgParams.pFileData [ i ].pThumbnail->Flags.Allocated ){L_FreeBitmap( DlgParams.pFileData [ i ].pThumbnail ) ;}GlobalFree ( DlgParams.pFileData [ i ].pThumbnail ) ;}if ( NULL != DlgParams.pFileData [ i ].pFileInfo ){GlobalFree ( DlgParams.pFileData [ i ].pFileInfo ) ;}if ( NULL != DlgParams.pFileData [ i ].FileOptions.pOptions ){GlobalFree ( DlgParams.pFileData [ i ].FileOptions.pOptions ) ;}}if ( NULL != DlgParams.pFileData ){GlobalFree ( DlgParams.pFileData ) ;}}elsereturn nRet;nRet = L_DlgFree();return nRet;}