Condividi tramite


IDBPromptInitialize::PromptFileName

Opens the Select Data Link dialog box. Allows the user to browse and organize .udl files. Returns a fully qualified path to the user-selected .udl file.

Syntax

HRESULT PromptFileName(
   HWND                 hWndParent,
   DBPROMPTOPTIONS      dwPromptOptions,
   LPCOLESTR            pwszInitialDirectory,
   LPCOLESTR            pwszInitialFile,
   LPCOLESTR *          ppwszSelectedFile);

Parameters

  • hWndParent [in]
    The parent window handle for dialog boxes to be displayed. The dialog box will always be centered within this window.

  • dwPromptOptions [in]
    Specifies the dialog box options.

    Value

    Meaning

    DBPROMPTOPTIONS_BROWSEONLY

    Prevents the user from creating new data link files.

  • pwszInitialDirectory [in]
    A pointer to a string containing the initial directory for the dialog box. If NULL, the default path "<Program Files\Common Files>\System\OLE DB\Data Links" is used. The exact value for <Program Files\Common Files> is system dependent. It can be determined from the "CommonFilesDir" registry entry, at "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion".

  • pwszInitialFile [in]
    A pointer to a string containing the initial file for the file name edit box of the dialog box. Wildcard characters ("*", "?") may be used to form a filtering expression.

  • ppwszSelectedFile [out]
    *ppwszSelectedFile points to a string containing the full path to the file the user selected. ppwszSelectedFile cannot be null.

Return Code

  • S_OK
    The method succeeded.

  • E_FAIL
    A provider-specific error occurred.

  • DB_E_CANCELED
    The user canceled the dialog.

  • E_INVALIDARG
    ppwszSelectedFile was a null pointer.

    dwPromptOptions was an invalid value.

  • STG_E_FILENOTFOUND
    pwszInitialFile could not be located. The file name may be too long or contain invalid characters.

Comments

To load a data source object from a .udl file after calling PromptFileName, the consumer must call IDataInitialize::LoadStringFromStorage to obtain the connection string from the file and then call IDataInitialize::GetDatasource to obtain the data source object based on the connection string.

If the initial directory cannot be accessed, an error message is displayed to the user. If the user chooses to continue, an accessible initial directory will be chosen automatically.

Code Example

The following code fragment shows how a consumer might use IDBPromptInitialize::PromptFileName to prompt the user for a data link (.udl) file:

   WCHAR *     pwszSelectedFile      = NULL;

   hr = pIDBPromptInitialize->PromptFileName(
         hWndParent,
         DBPROMPTOPTIONS_BROWSEONLY,
         L"C:\\Public",
         L"*.udl",
         &pwszSelectedFile);