Кіріспе

IDispatch – OLE Automation протоколын ашатын интерфейс. IUnknown-нан туындайтын, ол COM объектілерінің аша алатын стандартты интерфейстерінің бірі. COM үш интерфейс түрін ажыратады: VTABLE негізіндегі IUnknown интерфейстері, интроспекцияны қолдайтын IDispatch интерфейстері және екі түрін де қолдайтын екіталай интерфейстер. Автоматтандыру (IDispatch) интерфейсі клиенттік бағдарламаға объектінің жұмыс істеу кезінде қандай қасиеттер мен әдістерді қолдайтынын анықтауға мүмкіндік береді, яғни RTTI тұжырымдамасын іске асырады. Бұл қасиеттер мен әдістерді шақыру үшін қажетті ақпаратты да ұсынады. Клиенттік бағдарламалар компиляцияланған кезде объектінің мүшелерін білуі міндетті емес. Бұл COM және ActiveX объектілерін ASP сервері және Internet Explorer-дегі JavaScript сияқты скрипт бағдарламаларымен шақыруға мүмкіндік береді, онда IIS немесе IE құрылған кезде шақыру конвенциялары белгілі болмады. Керісінше, қарапайым объект кітапханасы бағдарламаға компиляцияланып қосылады, мысалы, DLL шақыруы компиляция кезінде функцияның атын және параметрлерін білуді қажет етеді. Скрипт жазушы COM объектісінен ол туралы құжаттамадан білетін әдіс немесе қасиетті сұрауы мүмкін. Содан кейін клиент IDispatch интерфейсімен ұсынылған Invoke арқылы функцияны орындай алады, бұл кеш байланыстың бір түрі. Бұл мүмкіндік сондай-ақ динамикалық дерек алмасу (DDE) арқылы қол жеткізілді, бірақ ол өте төменгі деңгейде болғандықтан кеңінен таралмады. Диспетчерлік интерфейстер икемді, бірақ жеке интерфейстерге қарағанда қосымша интроспекция және шақыру жүктемесіне ие. Сондықтан екі интерфейс түрін де қолдау жақсы идея. Осылайша, VTABLE негізіндегі шақыруды қолдайтын клиенттер диспетчерлік интерфейске қарағанда жеке интерфейсті пайдалана алады.