COM Tip(1)

一.AtlAdvise

Creates a connection between an object's connection point and a client's sink.

HRESULT AtlAdvise(
   IUnknown* pUnkCP,
   IUnknown* pUnk,
   const IID& iid,
   LPDWORD pdw 
);
pUnkCP

[in] A pointer to the IUnknownof the object the client wants to connect with.

pUnk

[in] A pointer to the client's IUnknown.

iid

[in] The GUID of the connection point. Typically, this is the same as the outgoing interface managed by the connection point.

pdw

[out] A pointer to the cookie that uniquely identifies the connection.

二.AtlUnadvise

Terminates the connection established through AtlAdvise. 
HRESULT AtlUnadvise(
   IUnknown* pUnkCP,
   const IID& iid,
   DWORD dw 
);
pUnkCP

[in] A pointer to the IUnknownof the object that the client is connected with.

iid

[in] The GUID of the connection point. Typically, this is the same as the outgoing interface managed by the connection point.

dw

[in] The cookie that uniquely identifies the connection.

三.COM_INTERFACE_ENTRY2

 
Use this macro to disambiguate two branches of inheritance. 
For example, if you derive your class object from two dual interfaces, 
you expose IDispatch using COM_INTERFACE_ENTRY2 since IDispatch can be obtained from either one of the interfaces.
 

四.CWinApp::RunEmbedded

Call this function to determine whether the "/Embedding" or "-Embedding" option is present, 
which indicates whether the server application was launched by a client application.

五.CWinApp::RunAutomated

Call this function to determine whether the "/Automation" or "-Automation" option is present, which indicates whether the server application was launched by a client application.

原文地址:https://www.cnblogs.com/Clingingboy/p/2078812.html