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.
pGenerateProgress
Type: Microsoft.VisualStudio.Shell.Interop.IVsGeneratorProgress[in] Odwołanie do IVsGeneratorProgress interfejs, za pośrednictwem której generator może raportować postęp do systemu projektu.
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