MultiFileSelectPopupEx
int MultiFileSelectPopupEx (char defaultDirectory[], char defaultFileSpec[], char fileTypeList[], char title[], int restrictDirectory, int restrictExtension, int *numberOfSelectedFiles, char ***fileList);
Purpose
Displays a multi-file selection dialog box and waits for the user to select a set of files or cancel. The user cannot select files from different directories using this function; use the MultiFileSelectPopup function to allow users to select files from different directories.
(Linux) There are no differences between the file selection dialog box displayed with MultiFileSelectPopup and MultiFileSelectPopupEx.
![]() |
Note The underlying Windows SDK function used to create and run the MultiFileSelectPopupEx dialog box does not work properly when the threading modelthreading model is multithread apartment (MTA). ActiveX functions use this thread type by default, and calling any ActiveX function initializes the thread to MTA. This might cause subsequent calls to the MultiFileSelectPopupEx function to return an error. To ensure the MultiFileSelectPopupEx dialog box works properly, LabWindows/CVI initializes the thread calling the MultiFileSelectPopupEx function to COINIT_APARTMENTTHREADED prior to creating the dialog box. If you want to run in the default MTA threading model, consider calling the MultiFileSelectPopupEx function from a different thread that does not call any ActiveX functions. You can explicitly set the ActiveX threading model for a thread using the CA_InitActiveXThreadStyleForCurrentThreadCA_InitActiveXThreadStyleForCurrentThread function. |
Parameters
Input | ||||
Name | Type | Description | ||
defaultDirectory | char [] | Initial directory. If you enter "", the function uses the current working directory for the initial directory. If the user selects a directory, and the popup is displayed again in the application, the default directory is the user-selected directory.
|
||
defaultFileSpec | char [] | String that specifies which value is displayed by default in the file type list of the dialog box. For example, "*.c" causes all files with the .c extension to be displayed. LabWindows/CVI adds a new file type item if needed. If an actual file name is specified, such as "test.c", that name appears in the file name box when the dialog box is displayed and the extension of the file, "*.c", is selected by default in the file type list. The default file specification (spec) cannot contain a directory path. The maximum length of the default file spec is 255 bytes. |
||
fileTypeList | char [] | List of file types, separated by semicolons, to display in the file type list of the dialog box when restrictExtension is FALSE. For example, "*.c;*.h" allows the user to select "*.c" or "*.h" from the file type list. The all files, "*.*", option is always available. You can group multiple file types under one entry in the drop-down list by enclosing the file types in parentheses and separating the file types by semicolons. You can include descriptive text along with the file types. For example, "JPEG Files (*.jpg;*.jpeg);PNG Files (*.png);*.bmp;" allows the user to see all JPEG file types at once, or to select "*.png" or "*.bmp" from the file type list. |
||
title | char [] | Title of the dialog box. | ||
restrictDirectory | int | Specify a nonzero value or select yes in the function panel to restrict the user from changing directories or drives. Specify 0 or select no in the function panel to allow the user to change directories or drives. |
||
restrictExtension | int | Specify a nonzero value or select yes in the function panel to limit the user to files with the default extension. Specify 0 or select no in the function panel to allow the user to select files with any extension. |
||
Output | ||||
Name | Type | Description | ||
numberOfSelectedFiles | int | Number of files selected by the user. | ||
fileList | char ** | Buffer that contains an array of strings, where each string is the name of one of the files selected. The last element of the array is a NULL pointer. The buffer is automatically allocated by MultiFileSelectPopupEx and is accessible as an array of strings. When you no longer need them, free each string and the array with the freefree function. The following example illustrates how to free each string in the file list and then free the file list array itself.
char **fileList = NULL, **ppc = NULL; |
Return Value
Name | Type | Description | ||||||
selectionStatus | int | The selection status or error codes generated during the function call.
Negative values indicate that an error occurred. |
Additional Information
Library: User Interface Library
Include file: userint.h
LabWindows/CVI compatibility: LabWindows/CVI 2012 and later
Example
Refer to apps\uirview\uirview.cws for an example of using the MultiFileSelectPopupEx function.