Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İşaretçilerin açık bir öznitelik açıklaması olması gerekmez. Açık bir öznitelik sağlanmadığında, MIDL Derleyicisi varsayılan işaretçi özniteliğini kullanır.
Dağıtılmamış işaretçiler için varsayılan durumlar şunlardır:
- Parametrede görüntülenen üst düzey işaretçiler varsayılan olarak [başvuru] işaretçilerini listeler.
- Diğer tüm işaretçiler varsayılan olarak [pointer_default] özniteliği tarafından belirtilen türe sahiptir. [pointer_default] özniteliği sağlandığında, MIDL derleyicisi DCE uyumlu moddayken MIDL derleyicisi Microsoft Uzantıları modundayken [ benzersiz ] özniteliğine veya [ptr] özniteliğine varsayılan olarak bu işaretçiler kullanılır.
Uzak yordam bir işaretçi döndürdüğünde, dönüş değeri [ benzersiz ] veya tam ([ ptr ]) işaretçisi olmalıdır.
/* IDL file compiled without /osf */
[
uuid(ba209999-0c6c-11d2-97cf-00c04f8eea45),
version(1.0),
pointer_default(ptr)
]
interface MyInterface
{
typedef long *PLONG;
struct MyCircularList {
struct MyCircularList *pRight;
struct MyCircularList *pLeft;
long Data;
};
void Foo1( [in] PLONG p ); // p is ref
void Foo2( [in] struct MyCircularList *p ); // p is ref, p->pRight and p->pLeft is ptr
struct MyCircularList *Foo3( void ); // returned pointer is ptr.
}
[
uuid(ba209999-0c6c-11d2-97cf-00c04f8eea46),
version(1.0)
]
interface MyInterface2
{
struct MySingleList
{
struct MySingleList *pNext;
long Data;
};
void Foo4( [in] struct MySingleList *p ); // p is ref, p->pNext is unique
struct MySingleList *Foo5( void ); // returned pointer is unique.
}
Açıklamalar
Kesin olmayan işaretçi özniteliği davranışı sağlamak için, işaretçiyi tanımlarken her zaman açık işaretçi özniteliklerini kullanın.
[ptr] yalnızca işaretçi diğer adı gerektiğinde kullanılması önerilir.