IVsQueryEditQuerySave2.QueryEditFiles – metoda (UInt32, Int32, String[], UInt32[], VSQEQS_FILE_ATTRIBUTE_DATA , UInt32, UInt32)
Volat, pokud je soubor bude upraven.
Obor názvů: Microsoft.VisualStudio.Shell.Interop
Sestavení: Microsoft.VisualStudio.Shell.Interop (v Microsoft.VisualStudio.Shell.Interop.dll)
Syntaxe
int QueryEditFiles(
uint rgfQueryEdit,
int cFiles,
string[] rgpszMkDocuments,
uint[] rgrgf,
VSQEQS_FILE_ATTRIBUTE_DATA[] rgFileInfo,
out uint pfEditVerdict,
out uint prgfMoreInfo
)
int QueryEditFiles(
unsigned int rgfQueryEdit,
int cFiles,
array<String^>^ rgpszMkDocuments,
array<unsigned int>^ rgrgf,
array<VSQEQS_FILE_ATTRIBUTE_DATA>^ rgFileInfo,
[OutAttribute] unsigned int% pfEditVerdict,
[OutAttribute] unsigned int% prgfMoreInfo
)
abstract QueryEditFiles :
rgfQueryEdit:uint32 *
cFiles:int *
rgpszMkDocuments:string[] *
rgrgf:uint32[] *
rgFileInfo:VSQEQS_FILE_ATTRIBUTE_DATA[] *
pfEditVerdict:uint32 byref *
prgfMoreInfo:uint32 byref -> int
Function QueryEditFiles (
rgfQueryEdit As UInteger,
cFiles As Integer,
rgpszMkDocuments As String(),
rgrgf As UInteger(),
rgFileInfo As VSQEQS_FILE_ATTRIBUTE_DATA(),
<OutAttribute> ByRef pfEditVerdict As UInteger,
<OutAttribute> ByRef prgfMoreInfo As UInteger
) As Integer
Parametry
- rgfQueryEdit
[v] Nastavit hodnoty příznaku z tagVSQueryEditFlags výčtu.Výchozí hodnota je 0.
- cFiles
[v] Počet souborů.
- rgpszMkDocuments
[v] Soubor ke zpracování.Jedná se o stejné velikosti jako cFiles.Není platná pro cFiles 0.
- rgrgf
[v] Pole z hodnoty příznaku tagVSQEQSFlags výčtu.NULLznamená, že jsou všechny 0.
- rgFileInfo
[v] Z hodnoty VSQEQS_FILE_ATTRIBUTE_DATA struktura obsahující informace o atributech souborů.To může být null; it is ignored if rgrgf is null.
- pfEditVerdict
[výstup] Z hodnoty tagVSQueryEditResult výčet označující, zda můžete pokračovat v úpravách.
- prgfMoreInfo
[výstup] Ukazatel na sadu příznaků, jejichž hodnoty jsou převzaty z tagVSQueryEditResultFlags výčtu.
Vrácená hodnota
Type: System.Int32
Pokud metoda uspěje, vrací S_OK.Pokud se nezdaří, vrátí kód chyby.
Vrácená hodnota v pfEditCanceled označuje, zda je OK pro úpravy souboru pokračovat.
Parametr prgfMoreInfo vrátí následující výsledky:
Zda jsou rezervovány žádné soubory
Zda změněny žádné soubory na rezervaci
Zda se všechny soubory jsou upravovány v paměti
Zda nejsou povoleny úpravy v paměti
Zda je vyžadována rezervace hlučné (v tichém režimu pouze)
Zda byla zrušena rezervace, nebo se nezdařilo
Poznámky
Podpis COM
Z ivsqueryeditquerysave2.idl
HRESULT QueryEditFiles(
[in] VSQueryEditFlags rgfQueryEdit,
[in] int cFiles,
[in, size_is(cFiles)] const LPCOLESTR rgpszMkDocuments[],
[in, size_is(cFiles)] const VSQEQSFlags rgrgf[],
[in, size_is(cFiles)] const VSQEQS_FILE_ATTRIBUTE_DATA rgFileInfo[],
[out] VSQueryEditResult *pfEditVerdict,
[out] VSQueryEditResultFlags *prgfMoreInfo
);
Editory, definované jako vše, co můžete změnit obsah souboru projektu by volání této metody před první úpravy v dokumentu, který ještě nebyl změněn.Můžete volat cokoli, který upravuje obsah souboru řešení (.sln) QueryEditSolutionFile, které bude volání této metody.
Pokud soubor není jen pro čtení a není ve správě zdrojů QER_EditOK je vrácena.
Pokud je soubor jen pro čtení, pokud není ve správě zdrojů a rgfQueryEdit nezahrnuje QEF_AllowInMemoryEdits (nebo je nastavena v dialogovém okně Možnosti zakázány úpravy souborů pouze pro čtení), potom QER_NoEdit_UserCanceled je v tichém režimu vrácena a úpravy se zaměřuje na data v paměti dokumentu.Pokud prostředí je v režimu s vysokou úrovní šumu, vyzve uživatele, že úprava je zrušena.
Pokud je soubor jen pro čtení, pokud není ve správě zdrojů a rgfQueryEdit zahrnuje QEF_AllowInMemoryEdits (nebo v dialogovém okně Možnosti nastavena na hodnotu Povolit úpravy v paměti), potom QER_EditOK je vrácena v tichém režimu.
Pokud je soubor jen pro čtení a ve správě zdrojů uživatele zadána volba zda soubor rezervovat.Pokud je soubor rezervován, QER_EditOK je vrácena; jinak QER_NoEdit_UserCanceled je vrácena.Tento případ je o něco složitější prostředí nepodporuje možnost "místní verze rezervaci" (a v berou v úvahu reloadability) Pokud uživatel již má nejnovější verzi souboru a pokud jsou povoleny úpravy v paměti (, QEF_AllowInMemoryEdits).Ve většině případů však v paměti úpravy souborů se změnami nejsou možné.
Editory, Reloadability a rezervace
Při volání QueryEditFiles, je vždy potenciál soubor rezervován, které zase změnit obsah souboru v paměti a na disku.
Z důvodu potenciálu změněný obsah by měl zavolat všechny VSPackages změn v souboru QueryEditFiles na první pokus změnit jeho obsah, než skutečně změny souboru.Pokud nedochází VSPackage volání QueryEditFiles první a již byly provedeny změny v souboru v paměti, že tyto změny v paměti může být ztraceno v důsledku soubor rezervován.Je to chyba v VSPackage.
Informace o tom, zda byl změněn soubor je vráceno v *prgfMoreInfo vrátí hodnotu prostřednictvím QER_Reloaded nebo QER_Changed příznaky.
Důležité |
---|
QER_Changedje vrácena pouze v případě QEF_DetectAnyChangedFile je příznak předán rgfQueryEdit argument QueryEditFiles volání. |
Pokud je soubor v tabulce s dokumenty a QueryEditFiles určí, že bude požadováno reload, pokusí se znovu načíst obsah souboru.Pokud jej nelze znovu načíst data, zobrazí okno se zprávou radí uživatel ručně zavřete a znovu otevřete dokument.Pokud vlastní editor, viz IVsPersistDocData pro znovu načte informace o způsobu podpory na dokumentech.
Soubory projektu
Je na každý projekt volání QueryEditFiles kdy je změna se provádí na informace, které je uložen v souboru projektu a k volání QuerySaveFile nebo QuerySaveFiles před uložením souboru projektu.
Viz také
IVsQueryEditQuerySave2 – rozhraní
Microsoft.VisualStudio.Shell.Interop – obor názvů
Zpátky na začátek