L_DlgOpen
#include "l_bitmap.h"
L_INT EXT_FUNCTION L_DlgOpen(hWndOwner, pOpenFileName, pDlgParams)
HWND hWndOwner; |
/* owner of dialog */ |
LPOPENFILENAME pOpenFileName; |
/* pointer to a Windows OPENFILENAME 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 OPENFILENAME 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 dialog’s initial values. |
Comments
The Open dialog can be seen below:
Returns
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 |
See Also
Functions: |
|
Topics: |
|
|
Example
L_INT L_EXPORT FileLoadCallback
(
LPOPENDLGFILEDATA lpFileData,
L_INT nTotalPercent,
L_INT nFilePercent,
L_VOID L_FAR* 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_VOID ShowDialog ( HWND hWnd )
{
OPENFILENAME OpenFileName;
OPENDLGPARAMS DlgParams ;
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_DlgOpen ( hWnd, &OpenFileName, &DlgParams );
//
if ( SUCCESS_DLG_OK == nRet )
{
int i = 0 ;
// After using the return data you should free allocated data
for ( 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 ) ;
}
}
}