moz0806ex.txt

来自「mozilla developer book examples.」· 文本 代码 · 共 26 行

TXT
26
字号
NS_IMETHODIMP
nsMyImplementation::QueryInterface( REFNSIID aIID, void** aInstancePtr )
{
  NS_ASSERTION(aInstancePtr, "QueryInterface requires a non-NULL destination!");
  if ( !aInstancePtr )
    return NS_ERROR_NULL_POINTER;
  nsISupports* foundInterface;
  if ( aIID.Equals(nsCOMTypeInfo<nsIX>::GetIID( )) )
    foundInterface = NS_STATIC_CAST(nsIX*, this);
  else if ( aIID.Equals(nsCOMTypeInfo<nsIY>::GetIID( )) )
    foundInterface = NS_STATIC_CAST(nsIY*, this);
  else if ( aIID.Equals(nsCOMTypeInfo<nsISupports>::GetIID( )) )
    foundInterface = NS_STATIC_CAST(nsISupports*, NS_STATIC_CAST(nsIX*, this));
  else
    foundInterface = 0;
  nsresult status;
  if ( !foundInterface ) {
    status = NS_NOINTERFACE;
  } else {
    NS_ADDREF(foundInterface);
    status = NS_OK;
  }
  *aInstancePtr = foundInterface;
  return status;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?