i686/x64的堆栈处置不同,那么64位程序可以调用32位的COM组件么

i686/x64的堆栈处理不同,那么64位程序可以调用32位的COM组件么?
例如我有一个COM组件是32位的,安装以后,可否用一个64位的应用程序来调用它?

我知道32/64的堆栈处理过程是不太一样的,64位程序会用4个寄存器来存储函数的参数,如果函数参数少于4个,那么就都是寄存器来传递,而不是像32位那样都在内存里push/pop了。因此生成的代码,在函数开始/结束的地方,对于堆栈的处理也就不一样。

这样的话,64位程序能调用32位的COM组件吗? 如果组件的某个函数声明是stdcall,它的参数是通过内存压栈传递的,而64位程序却把函数参数放到了寄存器里面,这样的话,参数传递这层就失败了,程序会不会崩溃啊?

反过来,32位程序能调用64位com组件吗?
非常疑惑于这个问题,还请高手指点一下,谢谢。

------解决方案--------------------
进程内的COM组件,估计不行
进程外的COM组件可以,因为是通过RPC