Örnek Oluşturma Yardımcı İşlevleri
COM'un önceki sürümlerinde, nesne örneği oluşturmak için kullanılan birincil mekanizma CoCreateInstanceişlevi. Bu işlev, yeni bir örnek oluşturmak ve sınıf nesnesini serbest bırakmak için bunu kullanarak bir sınıf nesnesi oluşturma işlemini kapsüller. Bu türdeki başka bir işlev, sınıf nesnesi oluşturan ve istenen nesneye işaretçi alan OLE bileşik belge yardımcısı olan OleCreatedaha özel.
Dağıtılmış sistemlerde örnek oluşturma sürecini düzeltmek için COM dört önemli yeni örnek oluşturma mekanizmasını kullanıma sunulmuştur:
- Sınıf takma adlarını ve IClassActivator
- CoCreateInstanceEx
- CoGetInstanceFromFile
- coGetInstanceFromIStorage
Sınıf takma adı, bir nesnenin sınıfını tanımlamanıza izin verir ve genellikle nesnenin konumunu belirtmek için dosya takma adı gibi başka bir adla kullanılır. Bu, bir nesneye bağlamanıza ve bu nesne için başlatılacak sunucuyu belirtmenize izin verir. Sınıf takma adlarını da IClassActivator arabirimine bağlamayı destekleyen takma adlarının sağ tarafından oluşturulabilir. Daha fazla bilgi için bkz. Sınıf Takma Adlarını.
CoCreateInstanceEx, belirtilen uzak makinede belirtilen CLSID ile ilişkili tek bir başlatılmamış nesne oluşturmayı mümkün kılmak için CoCreateInstancegenişletir. Ayrıca, tek bir arabirim istemek ve bu arabirim için tek bir işaretçi elde etmek yerine, CoCreateInstanceEx birden çok arabirimi sorgulamayı ve (varsa) tek bir gidiş dönüşte bunlara yönelik işaretçileri almayı mümkün kılar ve böylece makineler arasında daha az gidiş dönüşe izin verir. Bu, uzak nesne etkileşimlerini çok daha verimli hale getirir. Bunu yapmak için işlev bir dizi MULTI_QI yapısı kullanır.
CoCreateInstanceEx aracılığıyla nesne oluşturmak için yine de nesnenin başlatma arabirimlerinden birine (IPersistStorage::Load)çağrıyla başlatılması gerekir. CoGetInstanceFromFileve CoGetInstanceFromIStorageyardımcı işlevleri, hem CoCreateInstanceEx'ın örnek oluşturma gücünü hem de ilki bir dosyadan ve ikincisi bir depolamadan başlatmayı kapsüller.
İlgili konular
-
Sınıf Nesnesi Aracılığıyla Nesne Oluşturma