Sdílet prostřednictvím


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.

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.

System_CAPS_importantDů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