provideclassinfo.cpp
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:2k
源码类别:

midi

开发平台:

Unix_Linux

  1. /*****************************************************************************
  2.  * provideclassinfo.cpp: ActiveX control for VLC
  3.  *****************************************************************************
  4.  * Copyright (C) 2005 the VideoLAN team
  5.  *
  6.  * Authors: Damien Fouilleul <Damien.Fouilleul@laposte.net>
  7.  *
  8.  * This program is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License as published by
  10.  * the Free Software Foundation; either version 2 of the License, or
  11.  * (at your option) any later version.
  12.  *
  13.  * This program is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  * GNU General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU General Public License
  19.  * along with this program; if not, write to the Free Software
  20.  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  21.  *****************************************************************************/
  22. #include "plugin.h"
  23. #include "provideclassinfo.h"
  24. using namespace std;
  25. STDMETHODIMP VLCProvideClassInfo::GetClassInfo(ITypeInfo **ppTI)
  26. {
  27.     ITypeLib *p_typelib;
  28.     if( NULL == ppTI )
  29.         return E_POINTER;
  30.     HRESULT hr = _p_instance->getTypeLib(LOCALE_NEUTRAL, &p_typelib);
  31.     if( SUCCEEDED(hr) )
  32.     {
  33.         hr = p_typelib->GetTypeInfoOfGuid(_p_instance->getClassID(), ppTI);
  34.         if( FAILED(hr) )
  35.         {
  36.             *ppTI = NULL;
  37.         }
  38.         p_typelib->Release();
  39.     }
  40.     return hr;
  41. };
  42. STDMETHODIMP VLCProvideClassInfo::GetGUID(DWORD dwGuidKind, GUID *pGUID)
  43. {
  44.     if( GUIDKIND_DEFAULT_SOURCE_DISP_IID != dwGuidKind )
  45.         return E_INVALIDARG;
  46.     if( NULL == pGUID )
  47.         return E_POINTER;
  48.     *pGUID = _p_instance->getDispEventID();
  49.     return S_OK;
  50. };