IVsCommandWindow.PrepareCommand 方法

执行所有步骤准备执行命令行命令。

命名空间:  Microsoft.VisualStudio.Shell.Interop
程序集:  Microsoft.VisualStudio.Shell.Interop(在 Microsoft.VisualStudio.Shell.Interop.dll 中)

语法

声明
Function PrepareCommand ( _
    szCommand As String, _
    <OutAttribute> ByRef pguidCmdGroup As Guid, _
    <OutAttribute> ByRef pdwCmdID As UInteger, _
    <OutAttribute> ByRef ppvaCmdArg As IntPtr, _
    <OutAttribute> pResult As PREPARECOMMANDRESULT() _
) As Integer
int PrepareCommand(
    string szCommand,
    out Guid pguidCmdGroup,
    out uint pdwCmdID,
    out IntPtr ppvaCmdArg,
    PREPARECOMMANDRESULT[] pResult
)

参数

  • szCommand
    类型:System.String
    [in] 包含命令的字符串。
  • pguidCmdGroup
    类型:System.Guid%
    [out] 为命令的组 GUID 的指针。
  • pdwCmdID
    类型:System.UInt32%
    [out] 为命令的标识符的指针。
  • ppvaCmdArg
    类型:System.IntPtr%
    [out] 对包含命令参数的其他数组的指针。

返回值

类型:System.Int32
如果方法成功,则返回 S_OK。如果失败,它会返回一个错误代码。

备注

方法执行以下步骤:

  1. 分析命令字符串。

  2. 查找命令。

  3. 验证命令启用。

  4. 确定它是否接受参数。

  5. 准备包含参数的一个变体,并将收到命令的跳出。

在返回时,调用方让所有信息需要调用 IOleCommandTarget 接口的 Exec 方法。

COM 签名

从 vsshell.idl:

HRESULT IVsCommandWindow::PrepareCommand(
   [in, ref] LPCOLESTR szCommand, 
   [out] GUID* pguidCmdGroup, 
   [out] DWORD* pdwCmdId, 
   [out] VARIANT** ppvaCmdArg, 
   [out, retval] PREPARECOMMANDRESULT* pResult
);

实现者说明

在失败, PrepareCommand 返回 E_FAIL 并将 pResult 到一个失败的谓词类型 PREPARECOMMANDRESULT 的值。这使调用方自定义各种错误报告。在失败线程错误信息设置一个有意义的字符串。

调用方负责不同的参数 ppvaCmdArg。若要释放它,调用方必须首先调用 VariantClear 清除目录,然后调用 CoTaskMemFree 释放变量。

.NET Framework 安全性

请参见

参考

IVsCommandWindow 接口

Microsoft.VisualStudio.Shell.Interop 命名空间