Поделиться через


Функция WOWShellExecute

[Эта функция доступна в Windows XP с пакетом обновления 2 (SP2) и Windows Server 2003. Он может быть изменен или недоступен в последующих версиях Windows.]

Выполняет операцию с указанным файлом. WOWShellExecute существует только для использования с виртуальной doS-машиной Microsoft Windows NT (Ntvdm.exe), которая позволяет работать с дисковой операционной системой (DOS) и 16-разрядным программным обеспечением в системе Windows и не должна использоваться другими пользователями. Вместо этого используйте ShellExecute .

Синтаксис

HINSTANCE WOWShellExecute(
  _In_ HWND    hwnd,
  _In_ LPCTSTR lpOperation,
  _In_ LPCTSTR lpFile,
  _In_ LPCTSTR lpParameters,
  _In_ LPCTSTR lpDirectory,
  _In_ INT     nShowCmd,
       void    *lpfnCBWinExec
);

Параметры

hwnd [in]

Тип: HWND

Дескриптор окна владельца, используемого для отображения пользовательского интерфейса или сообщений об ошибках. Это значение может иметь значение NULL , если операция не связана с окном.

lpOperation [in]

Тип: LPCTSTR

Указатель на строку, завершающуюся значением NULL, которая в данном случае называется глаголом, указывающая выполняемое действие. Набор доступных команд зависит от конкретного файла или папки. Как правило, действия, доступные в контекстном меню объекта, являются доступными командами. Дополнительные сведения об глаголах и их доступности см. в разделе Object Verbsстатьи Запуск приложений. Дополнительные сведения о контекстных меню см. в разделе Расширение контекстных меню. Обычно используются следующие команды.

Редактировать

Запускает редактор и открывает документ для редактирования. Если lpFile не является файлом документа, функция завершится ошибкой.

Исследовать

Просматривает папку, указанную в lpFile.

Найти

Инициирует поиск, начиная с указанного каталога.

Открыть

Открывает файл, указанный параметром lpFile . Файл может быть исполняемым файлом, файлом документа или папкой.

Печати

Печатает файл документа, указанный lpFile. Если lpFile не является файлом документа, функция завершится ошибкой.

NULL

Для систем до Windows 2000 используется команда по умолчанию, если она действительна и доступна в реестре. В противном случае используется команда "открыть".

Для windows 2000 и более поздних версий используется команда по умолчанию, если она доступна. В противном случае используется команда "открыть". Если ни указанная команда не доступна, система использует первую команду, указанную в реестре.

lpFile [in]

Тип: LPCTSTR

Указатель на строку, завершающуюся нулевым значением, которая указывает файл или объект, для которого выполняется указанная команда. Чтобы указать объект пространства имен оболочки, передайте полное имя синтаксического анализа. Обратите внимание, что не все команды поддерживаются для всех объектов. Например, не все типы документов поддерживают команду "печать".

lpParameters [in]

Тип: LPCTSTR

Если параметр lpFile указывает исполняемый файл, lpParameters — это указатель на строку, завершающуюся null, которая указывает параметры, передаваемые приложению. Формат этой строки определяется вызываемой командой. Если lpFile указывает файл документа, значение lpParameters должно иметь значение NULL.

lpDirectory [in]

Тип: LPCTSTR

Указатель на строку, завершающуюся значением NULL, которая указывает каталог по умолчанию.

nShowCmd [in]

Тип: INT

Флаги, указывающие способ отображения приложения при его открытии. Если lpFile указывает файл документа, флаг просто передается в связанное приложение. Решение о том, как его обрабатывать, принимает приложение. Это может быть любое из значений, которые можно указать в параметре nCmdShow для функции ShowWindow .

lpfnCBWinExec

Тип: void*

Функция обратного вызова, используемая для вызова CreateProcess в 16-разрядном ядре.

Возвращаемое значение

Тип: HINSTANCE

Возвращает значение больше 32 в случае успешного выполнения или значение ошибки, которое меньше или равно 32 в противном случае. В следующей таблице перечислены значения ошибок. Возвращаемое значение приводится как HINSTANCE для обратной совместимости с 16-разрядными приложениями Windows. Это не настоящий HINSTANCE, однако. Единственное, что можно сделать с возвращаемым HINSTANCE, — привести его к int и сравнить со значением 32 или одним из приведенных ниже кодов ошибок.

Код возврата Описание
0
В операционной системе не хватает памяти или ресурсов.
ERROR_FILE_NOT_FOUND
Указанный файл не найден.
ERROR_PATH_NOT_FOUND
Указанный путь не найден.
ERROR_BAD_FORMAT
Файл .exe недопустим (.exe не Win32 или ошибка в .exe образе).
SE_ERR_ACCESSDENIED
Операционная система запретила доступ к указанному файлу.
SE_ERR_ASSOCINCOMPLETE
Связь с именем файла неполная или недопустимая.
SE_ERR_DDEBUSY
Не удалось завершить транзакцию DDE, так как обрабатывались другие транзакции DDE.
SE_ERR_DDEFAIL
Сбой транзакции DDE.
SE_ERR_DDETIMEOUT
Не удалось завершить транзакцию DDE, так как истекло время ожидания запроса.
SE_ERR_DLLNOTFOUND
Указанная библиотека DLL не найдена.
SE_ERR_FNF
Указанный файл не найден.
SE_ERR_NOASSOC
Нет приложения, связанного с заданным расширением имени файла. Эта ошибка также будет возвращена при попытке распечатать файл, который недоступен для печати.
SE_ERR_OOM
Недостаточно памяти для завершения операции.
SE_ERR_PNF
Указанный путь не найден.
SE_ERR_SHARE
Произошло нарушение общего доступа.

 

Комментарии

WOWShellExecute не включается в заголовок или LIB-файл. Экспортируется из Shell32.dll по имени.

Этот метод позволяет выполнять любые команды в контекстном меню папки или хранящиеся в реестре.

Если lpOperation имеет значение NULL, функция открывает файл, указанный в lpFile. Если lpOperation имеет значение "open" или "explore", функция пытается открыть или изучить папку.

Чтобы получить сведения о приложении, которое запускается в результате вызова WOWShellExecute, используйте ShellExecuteEx.

Примечание

Окно запуска папки в отдельном процессе в разделе Параметры папки влияет на WOWShellExecute. Если этот параметр отключен (параметр по умолчанию), WOWShellExecute использует открытое окно Обозреватель вместо запуска нового. Если окно Обозреватель не открыто, WOWShellExecute запускает новое окно.

 

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
DLL
Shell32.dll

См. также раздел

ShellExecute