Aracılığıyla paylaş


QueryInterface

Uyarı

Etkin Şablon Kitaplığı (ATL) desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.

Bir nesnenin sağladığı işlevselliği statik olarak (örneği başlatılmadan önce) ifade ettiği mekanizmalar olsa da, temel COM mekanizması adlı IUnknownyöntemi kullanmaktırQueryInterface.

Her arabirim ' den IUnknowntüretilir, bu nedenle her arabirimde bir uygulaması vardır QueryInterface. Uygulamadan bağımsız olarak, bu yöntem çağıranın işaretçi istediği arabirimini kullanarak IID bir nesneyi sorgular. Nesnesi bu arabirimi destekliyorsa, QueryInterface arabirimini çağıran AddRefbir işaretçi alır. Aksi takdirde hata kodunu döndürür E_NOINTERFACE .

Referans Sayma kurallarına her zaman uymanız gerektiğini unutmayın. Başvuru sayısını sıfıra azaltması için arabirim işaretçisini çağırırsanız Release , bu işaretçiyi bir daha kullanmamalısınız. Bazen bir nesneye zayıf bir başvuru almanız gerekebilir (yani, başvuru sayısını artırmadan arabirimlerinden birine yönelik bir işaretçi elde etmek isteyebilirsiniz), ancak bunu çağrılarak QueryInterfaceReleaseyapmak kabul edilemez. Böyle bir şekilde elde edilen işaretçi geçersizdir ve kullanılmamalıdır. Tanımlandığında _ATL_DEBUG_INTERFACES bu durum daha da görünür hale gelir, bu nedenle bu makronun tanımlanması başvuru sayma hatalarını bulmanın yararlı bir yoludur.

Ayrıca bkz.

COM’a Giriş
QueryInterface: Nesnede Gezinme