תרגול אוטומציה וממשקי זמן ריצה¶
תרגיל ראשון - העתקה והשאלה¶
שנו את המחרוזת המקורית אחרי VariantCopy ובדקו שההעתק שומר את התוכן הקודם. בצעו בנפרד העתקה של variant עם VT_BYREF | VT_I4, שנו את המשתנה המושאל ובדקו מה רואים משתי העטיפות. אל תשתמשו בכתובת אחרי סוף חיי המשתנה.
תרגיל שני - מערך שאינו מתחיל באפס¶
כתבו פונקציה שמקבלת SAFEARRAY חד ממדי של VT_I4, מאמתת מספר ממדים וטיפוס, מגבילה את מספר האיברים למיליון ומחזירה סכום של 64 ביט. בדקו מערך ריק, גבול תחתון שלילי וגבול תחתון גדול. אל תשתמשו בלולאה שיכולה להגדיל LONG_MAX.
תרגיל שלישי - שגיאה בשם ובטיפוס¶
הגדירו מימוש בדיקה של IDispatch עבור Subtract, או חברו לשרת מעבדה שלכם שמספק אותה. בדקו שם חסר, מספר פרמטרים שגוי, סדר הפוך וטיפוס שאינו נתמך. הגדירו אם המימוש שלכם מבצע coercion או דורש VT_I4 במפורש.
השוו את ייצוג הכשל לקריאת property דרך C++/WinRT, ותארו איזה קוד צריך לתפוס חריגה ואיזה קוד בודק HRESULT.