刚刚学调用COM组件,不知道IXXXPtr申明的智能指针使用''和'>'有什么区别

刚学调用COM组件,不知道IXXXPtr申明的智能指针使用'.'和'->'有什么区别?
为什么在CreateInstance使用的'.'操作符,而调用内部函数时使用'->'符?

------解决方案--------------------
IXXXPtr是一个只能指针模板类,他并不是一个指针,而是一个类,CreateInstance是这个类内的一个成员函数。调用类中的成员函数当然用"."了。
这个智能指针模板类原型为_com_ptr_t定义在<comip.h>中,你如果有兴趣可以去看下。他只不过是封装了传统的(IXXX * )指针,内部自己管理指针的引用计数,使得使用者不用再考虑是不是要Release。而这个类中有一个成员变量就保存着一个(IXXX * )指针,并重写了自己的"->"操作符使得可以用指针模板类来操纵指针。
关于指针模板类有很多文献,主要技术思想为RAII,你可以百度下。
另外用智能指针不用调用CreateInstance;
你可以直接写 
I$$$Ptr * ptr(I$$$);
它内部回自动调用CreateInstance。
------解决方案--------------------
要点:
智能指针是一个类对象,所有的操作遵循对象的规范
. 是正常的成员访问
->是操作符“->”重载,看起来像是使用指针,但实际是调用 operator->(...)
------解决方案--------------------
它既是指针又是一个类对象,所以有. ->, 有各自的成员函数