ShellExecuteの前にCOMを初期化するべきという話のソースを見つけたので張っておく
http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx
Remarksのところ
STAで初期化したほうがいいらしい