Udostępnij za pośrednictwem


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

 

Wykonuje przekształcenie i zwraca nowo wygenerowany plik wyjściowy, każdorazowo po załadowaniu niestandardowego narzędzia lub zapisaniu pliku wejściowego.

Przestrzeń nazw:   Microsoft.VisualStudio.Shell.Interop
Zestaw:  Microsoft.VisualStudio.Shell.Interop (w Microsoft.VisualStudio.Shell.Interop.dll)

Składnia

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

    [in] Pełna ścieżka pliku wejściowego. Może być null w przyszłych wersjach programu Visual Studio, więc nie będą miały generatory od tej wartości.

  • bstrInputFileContents
    Type: System.String

    [in] Zawartość pliku wejściowego. Jest to BSTR UNICODE (Jeśli plik wejściowy jest tekst) lub binarne BSTR (Jeśli plik wejściowy jest binarny). Jeśli plik wejściowy plik tekstowy, system projektu automatycznie konwertuje BSTR UNICODE.

  • wszDefaultNamespace
    Type: System.String

    [in] Ten parametr ma znaczenie tylko dla niestandardowych narzędzi generujących kod. Reprezentuje obszar nazw, w którym zostanie umieszczony wygenerowany kod. Jeśli parametr nie jest null i nie jest pusty, narzędzie niestandardowe można, użyj następującej składni, należy ująć wygenerowanego kodu.

    ' Visual Basic Namespace [default namespace]

    ... End Namespace

    // Visual C#

    namespace [default namespace] { ... }

  • rgbOutputFileContents
    Type: System.IntPtr[]

    [out] Zwraca tablicę bajtów do zapisania w wygenerowanym pliku. UNICODE lub UTF-8 bajtów podpis musi zawierać w tablicy bajtów zwróconych, jak jest to strumień raw. Pamięć rgbOutputFileContents musi być przydzielona za pomocą wywołania .NET Framework, System.Runtime.InteropServices.AllocCoTaskMem lub równoważne wywołanie systemu Win32, CoTaskMemAlloc. System projektu jest odpowiedzialny za zwalnianie tej pamięci.

  • pcbOutput
    Type: System.UInt32

    [out] Zwraca liczbę bajtów w rgbOutputFileContent tablicy.

Wartość zwracana

Type: System.Int32

Jeśli metoda zakończy się pomyślnie, zwraca S_OK. Jeśli nie, zwraca kod błędu.

Uwagi

Podpis 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
);

Ze względu na wydajność systemu projektu ponownie używa pojedynczego wystąpienia niestandardowe narzędzie do obsługi wielu przekształceń pliku. W związku z tym narzędzie niestandardowe powinny być przeznaczony do obsługi wielu wywołań Generuj przez jego okres istnienia.

System projektu interpretuje wartość zwracaną przez Generuj niezależnie od błędów zgłoszonych przez IVsGeneratorProgress. Oznacza to, że jeśli błędy są zgłaszane przez IVsGeneratorProgress, ta metoda musi zwracać nadal nie powiodła się dla całego procesu generowania się niepowodzeniem.

Zobacz też

Interfejs IVsSingleFileGenerator
Przestrzeń nazw Microsoft.VisualStudio.Shell.Interop

Powrót do początku