   COM Resource Management Question
  So, I've been working with DirectX9 for a little bit, and I had a question that I wasn't able to find a clear answer for. From what I understand, there are certain actions that, when performed on a COM object, an additional Release() call is required to free up the memory properly. So the question is, what are the exact points which create these requirements? They seem to have something to do with passing it as a function parameter, or storing it in another variable.Also, I recall seeing somewhere that DX10 simplifies this somewhat. If that's true, how so?   