תרגול העברת ממשקים בין גבולות¶
תרגיל ראשון - היכן רצה המתודה¶
הריצו את שני המצבים ושמרו את מספרי הthreadים ואת קוד הקריאה. החליפו את ההמתנה הראשונה לשתי שניות ובדקו האם זמן ההמתנה משתנה בלי שהthread של המתודה משתנה. אל תסיקו שE_NOINTERFACE הוא כשל transport: הוא מוחזר בכוונה מתוך המימוש.
תרגיל שני - העברה שלא נצרכה¶
הוסיפו מצב שמוותר על יצירת worker אחרי יצירת packet. בדקו שהמסלול קורא לCoReleaseMarshalData בSTA המקורי ושהstream משוחרר פעם אחת. הוסיפו הדפסת destructor לprobe כדי לעקוב אחרי סוף חייו.
תרגיל שלישי - חוזה אחרי קריסה¶
תכננו ממשק של שרת מקומי עם Start, Query וCancel. השרת עשוי לקרוס אחרי commit ולפני החזרת Start. הגדירו מזהי בקשה, תוצאת timeout, ניסיון חוזר וחידוש proxy. הסבירו למה מסוכן להעביר למימוש המקבל packet של COM שהגיע ממשתמש לא מהימן.