Sdílet prostřednictvím


Metoda IVsSingleFileGenerator.Generate (String, String, String, IntPtr , UInt32, IVsGeneratorProgress)

 

Provede transformace a vrátí nově vygenerovaného výstupního souboru vždy, když je načtena vlastní nástroj nebo vstupní soubor je uložen.

Obor názvů:   Microsoft.VisualStudio.Shell.Interop
Sestavení:  Microsoft.VisualStudio.Shell.Interop (v Microsoft.VisualStudio.Shell.Interop.dll)

Syntaxe

int Generate(
    string wszInputFilePath,
    string bstrInputFileContents,
    string wszDefaultNamespace,
    IntPtr[] rgbOutputFileContents,
    out uint pcbOutput,
    IVsGeneratorProgress pGenerateProgress
)
int Generate(
    String^ wszInputFilePath,
    String^ bstrInputFileContents,
    String^ wszDefaultNamespace,
    array<IntPtr>^ rgbOutputFileContents,
    [OutAttribute] unsigned int% pcbOutput,
    IVsGeneratorProgress^ pGenerateProgress
)
abstract Generate : 
        wszInputFilePath:string *
        bstrInputFileContents:string *
        wszDefaultNamespace:string *
        rgbOutputFileContents:nativeint[] *
        pcbOutput:uint32 byref *
        pGenerateProgress:IVsGeneratorProgress -> int
Function Generate (
    wszInputFilePath As String,
    bstrInputFileContents As String,
    wszDefaultNamespace As String,
    rgbOutputFileContents As IntPtr(),
    <OutAttribute> ByRef pcbOutput As UInteger,
    pGenerateProgress As IVsGeneratorProgress
) As Integer

Parametry

  • wszInputFilePath
    Type: System.String

    [v] Úplná cesta vstupního souboru. Může být null v budoucích verzích Visual Studio, takže generátory neměli spoléhat na tuto hodnotu.

  • bstrInputFileContents
    Type: System.String

    [v] Obsah vstupního souboru. Toto je BSTR UNICODE (Pokud je vstupní soubor text) nebo binární BSTR (Pokud je vstupní soubor binární). Pokud vstupní soubor je textový soubor, systém projektu automaticky převádí BSTR na kódování UNICODE.

  • wszDefaultNamespace
    Type: System.String

    [v] Tento parametr má smysl pouze pro vlastní nástroje, které generují kód. Představuje obor názvů, do kterého budou umístěny vygenerovaný kód. Není-li parametr null a není prázdné, vlastní nástroj můžete použít následující syntaxi lze použít k uzavření generovaný kód.

    ' Visual Basic Namespace [default namespace]

    ... End Namespace

    // Visual C#

    namespace [default namespace] { ... }

  • rgbOutputFileContents
    Type: System.IntPtr[]

    [out] Vrátí pole bajtů k zápisu do generovaného souboru. UNICODE nebo UTF-8 bajtů podpis musíte zahrnout vrácené bajtové pole, je to hrubý datového proudu. Paměť pro rgbOutputFileContents musí být přidělena pomocí volání rozhraní .NET Framework, System.Runtime.InteropServices.AllocCoTaskMem nebo ekvivalentní systémové volání Win32, CoTaskMemAlloc. Systém projektu je odpovědná za uvolnění tuto paměť.

  • pcbOutput
    Type: System.UInt32

    [out] Vrátí počet bajtů rgbOutputFileContent pole.

Návratová hodnota

Type: System.Int32

Pokud je metoda úspěšná, vrátí S_OK. Pokud selže, vrátí kód chyby.

Poznámky

Podpis modelu COM

Z vsshell.idl:

HRESULT IVsSingleFileGenerator::Generate(
   [in] LPCOLESTR wszInputFilePath,
   [in] BSTR bstrInputFileContents,
   [in] LPCOLESTR wszDefaultNamespace,
   [out] BYTE** rgbOutputFileContents,
   [out] ULONG* pcbOutput,
   [in] IVsGeneratorProgress* pGenerateProgress
);

Z důvodů výkonu použije systém projektu znovu existenci jediné instance vlastního nástroje pro zpracování více transformací souboru. Proto by měla být vlastní nástroj navrženy pro zpracování více volání generovat během celé jeho životnosti.

Systém projektu interpretuje návratovou hodnotu generovat nezávisle na chyb zaznamenaný prostřednictvím IVsGeneratorProgress. To znamená pokud jsou hlášeny chyby prostřednictvím IVsGeneratorProgress, tato metoda musí vracet stále se nezdařila pro celý proces generování selhání.

Viz také

Rozhraní IVsSingleFileGenerator
Obory názvů Microsoft.VisualStudio.Shell.Interop

Zpět na začátek