Interface is obtained and method is called:
IFileOpenDialog *pFileOpen;
CoCreateInstance(__uuidof(FileOpenDialog), NULL, CLSCTX_INPROC_SERVER,IID_PPV_ARGS(&pFileOpen));
pFileOpen->Show(NULL);
In assembly it is:
mov         eax,pFileOpen
mov         ecx,dword ptr [eax]  
mov         edx,pFileOpen
push        edx  
mov         eax,dword ptr [ecx+ offset_Show]
call        eax  
That is ecx is pointer to VMT, [ecx + offset_Show] is method Show. How to get offset_Show, desirably as in high level as possible. pFileOpen->Show as pointer is not compilable.
 
     
    