Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Language: COM/DCOM/COM+
Expertise: Beginner
Jan 19, 2000

Use of void** in QueryInterface (COM)

Question:
When using Queryinterface in COM, why is the interface pointer cast to void** and why is it passed as a pointer to a pointer (double indirection)?

Answer:
This is because the function that accepts the void** pointer changes its value.

In general, when you call a function that changes the value of an int, you pass an int * to that function. However, when the argument to be changed is itself a pointer, you need to pass that pointer's address. In other words, you pass a pointer to a pointer. This exactly what void** is.

DevX Pro
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date