DTE BeforeExecute and AfterExecute Command Events

28 בנובמבר 2012

תגיות: , , ,
אין תגובות

ישנם הרבה אירועים שניתן להירשם אליהם כשמפתחים VS PlugIn, כמובן שלא לכל האירועים שבאמת קיימים ב – VS יש אירוע שניתן להירשם אליו כדי לקבל את המידע, לדוגמא AddExistingItem ועוד הרבה אחרים.

בשביל זה קיימים האירועים AfterExecute, BeforeExecute, שיופעלו בכל אירוע כלשהו שמתרחש.

לאחר שנירשם אליהם (נמצאים תחת CommandEvents של המאפין Events של ה – DTE)

המתודות יראו כך.

EnvCommandEvents_BeforeExecute(string Guid, int ID, object CustomIn, object CustomOut, ref bool CancelDefault)

 

CommandEvents_AfterExecute(string Guid, int ID, object CustomIn, object CustomOut)

 

כדי לדעת איזה אירוע באמת קרה, נצטרך לשלב בין הפרמטר Guid ו – ID.

ה – Guid מכיל את המידע מתוך איזה רשימה האירוע קרה, המחלקה הסטטית CMDSETID תחת המחלקה הסטטית VSConstants מכילה רשימת ערכים שנוכל להשתמש בהם כדי לבדוק, קוד רגיל יהיה כזה:

if (Guid == VSConstants.CMDSETID.StandardCommandSet97_string

VSConstants נמצא תחת ה – dll של Microsoft.VisualStudio.Shell.11.0.dll

הקוד למעלה מוודא שהפקודה היא אחת מהפקודות הסטנדרטיות של VS 97, כעת נבדוק איזה מהם, בעזרת הקוד הבא:

ID == (int)VSConstants.VSStd97CmdID.AddExistingItem

כמובן שיש את כל רשימת האירועים האפשרית עבור כל אחד מה – CommandSet הקיימים.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *