psqlodbcドライバ実装シミュレーション覚え書き

少し気になっていたインターフェイスポインターのスレッドをまたがる使用についてであるが、まずDTC Proxyから渡されるITransactionEnlistmentAsyncへのインターフェイスポインターはThreadingModel=Bothで実装されているようなので、どのスレッドからも同じインターフェイスポインターを使用できる。こちら側で作成するITransactionResourceAsyncもBothにすればどのスレッドからも同じポインタを使用できる。幸い、コールバックとして呼び出すITransactionEnlistmentAsyncインターフェイス呼び出しは上述のようにアパートメントを気にする必要がなく、自分自身のみスレッドセーフであるように留意すればBothを実現できることになる。