ATL新手请问

ATL新手请教
如果我建立了一个STA的com对象,除了使用该对象的函数外没有其他方法能使用该对象的资源(该对象的资源不是共享资源),那么是否该对象的数据操作都可以视为是同步的?

因为我在该对象里面使用了许多int、struct类型的数据,但是在不同线程里都是可以直接使用的,只有js传递进来的回调函数是需要用CoMarshalInterThreadInterfaceInStream锁定和CoGetInterfaceAndReleaseStream来获取的。我不清楚其他数据直接在函数中赋值是否可靠,需不需要自己进行同步处理?

求大侠们不吝指教,因为自己同步比较麻烦,而且可能出错,如果sta有保障就最好了。
------最佳解决方案--------------------
安全,
如果有多个对象实例,且资源是HANDLE之类的系统变量则不安全.
------其他解决方案--------------------
引用:
安全,
如果有多个对象实例,且资源是HANDLE之类的系统变量则不安全.

感谢大侠的回复。对象实例只有一个,HANDLE不安全是因为外部可以修改它的值和有效值吗?
------其他解决方案--------------------
说错了,是有效性。
------其他解决方案--------------------
HANDLE一般是全局的,如hFile之类,2个实例可以同时操作它.
你如果只有一个实例则没有问题,但是有些HANDLE是有一个操作流程的,也会出错.
不过STA一般不适合做多线程访问,原因比较复杂,和windows消息传递有关.
------其他解决方案--------------------
引用:
HANDLE一般是全局的,如hFile之类,2个实例可以同时操作它.
你如果只有一个实例则没有问题,但是有些HANDLE是有一个操作流程的,也会出错.
不过STA一般不适合做多线程访问,原因比较复杂,和windows消息传递有关.

了解,多谢指点。其实我这边主要是作为一个com组件不能占用主线程,而且必须要有多个常驻线程,但是只需要让这些线程能互斥访问就足够了。

Handle这类指针处理不当的确会有时序上问题,不过这类问题在非atl的编程里也很常见,所以我也习惯了。主要是用了atl,就希望能合理地利用现有的特性,而不是自己很苦B地加锁控制。
------其他解决方案--------------------
问题就在于主线程,因为STA多线程访问需要GetMessage()消息泵驱动,十分的麻烦.