亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dllsetup.cpp

?? 用DirectX制作高級動畫-[Advanced.Animation.with.DirectX]
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
//---------------------------------------------------------------------------
//
// AMovieDllRegisterServer2()
//
// default ActiveMovie dll setup function
// - to use must be called from an exported
//   function named DllRegisterServer()
//
// this function is table driven using the
// static members of the CFactoryTemplate
// class defined in the dll.
//
// it registers the Dll as the InprocServer32
// and then calls the IAMovieSetup.Register
// method.
//
//---------------------------------------------------------------------------

STDAPI
AMovieDllRegisterServer2( BOOL bRegister )
{
  HRESULT hr = NOERROR;

  DbgLog((LOG_TRACE, 2, TEXT("AMovieDllRegisterServer2()")));

  // get file name (where g_hInst is the
  // instance handle of the filter dll)
  //
  WCHAR achFileName[MAX_PATH];

  // WIN95 doesn't support GetModuleFileNameW
  //
  {
    char achTemp[MAX_PATH];

    DbgLog((LOG_TRACE, 2, TEXT("- get module file name")));

    // g_hInst handle is set in our dll entry point. Make sure
    // DllEntryPoint in dllentry.cpp is called
    ASSERT(g_hInst != 0);

    if( 0 == GetModuleFileNameA( g_hInst
                              , achTemp
                              , sizeof(achTemp) ) )
    {
      // we've failed!
      DWORD dwerr = GetLastError();
      return AmHresultFromWin32(dwerr);
    }

    MultiByteToWideChar( CP_ACP
                       , 0L
                       , achTemp
                       , lstrlenA(achTemp) + 1
                       , achFileName
                       , NUMELMS(achFileName) );
  }

  //
  // first registering, register all OLE servers
  //
  if( bRegister )
  {
    DbgLog((LOG_TRACE, 2, TEXT("- register OLE Servers")));
    hr = RegisterAllServers( achFileName, TRUE );
  }

  //
  // next, register/unregister all filters
  //

  if( SUCCEEDED(hr) )
  {
    // init is ref counted so call just in case
    // we're being called cold.
    //
    DbgLog((LOG_TRACE, 2, TEXT("- CoInitialize")));
    hr = CoInitialize( (LPVOID)NULL );
    ASSERT( SUCCEEDED(hr) );

    // get hold of IFilterMapper2
    //
    DbgLog((LOG_TRACE, 2, TEXT("- obtain IFilterMapper2")));
    IFilterMapper2 *pIFM2 = 0;
    IFilterMapper *pIFM = 0;
    hr = CoCreateInstance( CLSID_FilterMapper2
                         , NULL
                         , CLSCTX_INPROC_SERVER
                         , IID_IFilterMapper2
                         , (void **)&pIFM2       );
    if(FAILED(hr))
    {
        DbgLog((LOG_TRACE, 2, TEXT("- trying IFilterMapper instead")));

        hr = CoCreateInstance(
            CLSID_FilterMapper,
            NULL,
            CLSCTX_INPROC_SERVER,
            IID_IFilterMapper,
            (void **)&pIFM);
    }
    if( SUCCEEDED(hr) )
    {
      // scan through array of CFactoryTemplates
      // registering servers and filters.
      //
      DbgLog((LOG_TRACE, 2, TEXT("- register Filters")));
      for( int i = 0; i < g_cTemplates; i++ )
      {
        // get i'th template
        //
        const CFactoryTemplate *pT = &g_Templates[i];

        if( NULL != pT->m_pAMovieSetup_Filter )
        {
          DbgLog((LOG_TRACE, 2, TEXT("- - register %ls"), (LPCWSTR)pT->m_Name ));

          if(pIFM2)
          {
              hr = AMovieSetupRegisterFilter2( pT->m_pAMovieSetup_Filter, pIFM2, bRegister );
          }
          else
          {
              hr = AMovieSetupRegisterFilter( pT->m_pAMovieSetup_Filter, pIFM, bRegister );
          }
        }

        // check final error for this pass
        // and break loop if we failed
        //
        if( FAILED(hr) )
          break;
      }

      // release interface
      //
      if(pIFM2)
          pIFM2->Release();
      else
          pIFM->Release();

    }

    // and clear up
    //
    CoFreeUnusedLibraries();
    CoUninitialize();
  }

  //
  // if unregistering, unregister all OLE servers
  //
  if( SUCCEEDED(hr) && !bRegister )
  {
    DbgLog((LOG_TRACE, 2, TEXT("- register OLE Servers")));
    hr = RegisterAllServers( achFileName, FALSE );
  }

  DbgLog((LOG_TRACE, 2, TEXT("- return %0x"), hr));
  return hr;
}


//---------------------------------------------------------------------------
//
// AMovieDllRegisterServer()
//
// default ActiveMovie dll setup function
// - to use must be called from an exported
//   function named DllRegisterServer()
//
// this function is table driven using the
// static members of the CFactoryTemplate
// class defined in the dll.
//
// it registers the Dll as the InprocServer32
// and then calls the IAMovieSetup.Register
// method.
//
//---------------------------------------------------------------------------


STDAPI
AMovieDllRegisterServer( void )
{
  HRESULT hr = NOERROR;

  // get file name (where g_hInst is the
  // instance handle of the filter dll)
  //
  WCHAR achFileName[MAX_PATH];

  {
    // WIN95 doesn't support GetModuleFileNameW
    //
    char achTemp[MAX_PATH];

    if( 0 == GetModuleFileNameA( g_hInst
                              , achTemp
                              , sizeof(achTemp) ) )
    {
      // we've failed!
      DWORD dwerr = GetLastError();
      return AmHresultFromWin32(dwerr);
    }

    MultiByteToWideChar( CP_ACP
                       , 0L
                       , achTemp
                       , lstrlenA(achTemp) + 1
                       , achFileName
                       , NUMELMS(achFileName) );
  }

  // scan through array of CFactoryTemplates
  // registering servers and filters.
  //
  for( int i = 0; i < g_cTemplates; i++ )
  {
    // get i'th template
    //
    const CFactoryTemplate *pT = &g_Templates[i];

    // register CLSID and InprocServer32
    //
    hr = AMovieSetupRegisterServer( *(pT->m_ClsID)
                                  , (LPCWSTR)pT->m_Name
                                  , achFileName );

    // instantiate all servers and get hold of
    // IAMovieSetup, if implemented, and call
    // IAMovieSetup.Register() method
    //
    if( SUCCEEDED(hr) && (NULL != pT->m_lpfnNew) )
    {
      // instantiate object
      //
      PAMOVIESETUP psetup;
      hr = CoCreateInstance( *(pT->m_ClsID)
                           , 0
                           , CLSCTX_INPROC_SERVER
                           , IID_IAMovieSetup
                           , reinterpret_cast<void**>(&psetup) );
      if( SUCCEEDED(hr) )
      {
        hr = psetup->Unregister();
        if( SUCCEEDED(hr) )
          hr = psetup->Register();
        psetup->Release();
      }
      else
      {
        if(    (E_NOINTERFACE      == hr )
            || (VFW_E_NEED_OWNER == hr ) )
          hr = NOERROR;
      }
    }

    // check final error for this pass
    // and break loop if we failed
    //
    if( FAILED(hr) )
      break;

  } // end-for

  return hr;
}


//---------------------------------------------------------------------------
//
// AMovieDllUnregisterServer()
//
// default ActiveMovie dll uninstall function
// - to use must be called from an exported
//   function named DllRegisterServer()
//
// this function is table driven using the
// static members of the CFactoryTemplate
// class defined in the dll.
//
// it calls the IAMovieSetup.Unregister
// method and then unregisters the Dll
// as the InprocServer32
//
//---------------------------------------------------------------------------

STDAPI
AMovieDllUnregisterServer()
{
  // initialize return code
  //
  HRESULT hr = NOERROR;

  // scan through CFactory template and unregister
  // all OLE servers and filters.
  //
  for( int i = g_cTemplates; i--; )
  {
    // get i'th template
    //
    const CFactoryTemplate *pT = &g_Templates[i];

    // check method exists
    //
    if( NULL != pT->m_lpfnNew )
    {
      // instantiate object
      //
      PAMOVIESETUP psetup;
      hr = CoCreateInstance( *(pT->m_ClsID)
                           , 0
                           , CLSCTX_INPROC_SERVER
                           , IID_IAMovieSetup
                           , reinterpret_cast<void**>(&psetup) );
      if( SUCCEEDED(hr) )
      {
        hr = psetup->Unregister();
        psetup->Release();
      }
      else
      {
        if(    (E_NOINTERFACE      == hr )
            || (VFW_E_NEED_OWNER == hr ) )
           hr = NOERROR;
      }
    }

    // unregister CLSID and InprocServer32
    //
    if( SUCCEEDED(hr) )
    {
      hr = AMovieSetupUnregisterServer( *(pT->m_ClsID) );
    }

    // check final error for this pass
    // and break loop if we failed
    //
    if( FAILED(hr) )
      break;
  }

  return hr;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区精品在线观看| 久久日韩精品一区二区五区| 国产suv精品一区二区6| 日本在线不卡视频| 午夜激情一区二区| 美女mm1313爽爽久久久蜜臀| 秋霞国产午夜精品免费视频| 日本欧美大码aⅴ在线播放| 日本不卡免费在线视频| 久久国产麻豆精品| 风间由美性色一区二区三区| 成人高清视频免费观看| 91原创在线视频| 欧美伊人久久久久久久久影院| 日本精品视频一区二区| 国产亚洲欧美一级| 欧美国产综合一区二区| 亚洲色图另类专区| 午夜精品福利久久久| 国产在线看一区| 成人sese在线| 欧美日韩精品专区| 精品国产乱码久久久久久1区2区| 久久久午夜精品| 一区二区三区在线视频免费观看| 午夜欧美2019年伦理| 开心九九激情九九欧美日韩精美视频电影 | 成人精品免费视频| 色综合天天综合色综合av | 免费久久精品视频| 福利一区二区在线| 欧美日韩第一区日日骚| 国产亚洲欧洲一区高清在线观看| 亚洲久草在线视频| 国产真实乱对白精彩久久| 94-欧美-setu| 日韩欧美视频一区| 亚洲精品美腿丝袜| 国产麻豆精品一区二区| 精品国产乱码久久| 亚洲一区二区三区四区的| 久久99精品久久久久久久久久久久| 高清不卡一区二区| 制服丝袜亚洲播放| 亚洲色图丝袜美腿| 国产一区二区精品久久| 欧美日韩电影一区| 中文字幕视频一区| 国产在线国偷精品产拍免费yy| 91久久久免费一区二区| 久久综合999| 日本成人超碰在线观看| 91老师片黄在线观看| 精品国产乱码久久| 七七婷婷婷婷精品国产| 欧美影片第一页| 国产精品美女视频| 国产精品亚洲综合一区在线观看| 欧美三级日韩三级国产三级| 国产精品成人一区二区艾草| 国产精品一区专区| 精品卡一卡二卡三卡四在线| 日韩和欧美一区二区三区| 91福利视频久久久久| 亚洲欧洲精品成人久久奇米网| 国产一区啦啦啦在线观看| 91精品国产综合久久久久久久 | 日韩一二三四区| 亚洲电影在线播放| 欧美性受xxxx黑人xyx| 国产精品国产自产拍高清av王其| 国产大片一区二区| 国产亚洲一区二区三区在线观看 | 伊人婷婷欧美激情| av不卡一区二区三区| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 日韩精品中文字幕在线一区| 日韩中文字幕区一区有砖一区| 欧美日韩久久一区| 日韩中文字幕麻豆| 精品少妇一区二区三区在线视频 | 久久久久久**毛片大全| 国产精品77777竹菊影视小说| 久久只精品国产| 国产精品一区二区在线看| 久久久精品一品道一区| 成人一区二区三区视频在线观看| 国产欧美一二三区| 99国产精品99久久久久久| 亚洲美女视频在线| 7777精品伊人久久久大香线蕉| 视频一区二区中文字幕| 欧美成人一区二区三区片免费 | 国产免费观看久久| 99久久免费国产| 午夜视频在线观看一区| 欧美成人精品1314www| 国产福利精品导航| 一区二区三国产精华液| 91 com成人网| 国产一区二区不卡| 亚洲精品写真福利| 精品国产亚洲一区二区三区在线观看 | 一区视频在线播放| 欧美人体做爰大胆视频| 国产精品综合视频| 亚洲美女在线一区| 精品国产乱码久久| 色婷婷综合久久久久中文 | 国产成a人无v码亚洲福利| 综合亚洲深深色噜噜狠狠网站| 欧美日韩一区二区三区在线| 久久er99精品| 亚洲综合激情网| 久久一二三国产| 91黄色激情网站| 韩国毛片一区二区三区| 亚洲男人的天堂网| 精品国产乱码久久久久久闺蜜| 色8久久精品久久久久久蜜| 精品亚洲成av人在线观看| 亚洲女女做受ⅹxx高潮| 久久综合网色—综合色88| 欧美三级日韩在线| 成a人片国产精品| 久久99热这里只有精品| 亚洲主播在线播放| 欧美激情综合五月色丁香 | 久久看人人爽人人| 欧美日韩一区视频| 一本大道久久a久久精品综合| 国产一区视频导航| 美女视频黄久久| 亚洲高清中文字幕| 亚洲人成精品久久久久| 国产日韩欧美制服另类| 精品少妇一区二区三区日产乱码 | |精品福利一区二区三区| 日韩欧美一级二级| 欧美老女人在线| 91蜜桃网址入口| 99麻豆久久久国产精品免费优播| 极品销魂美女一区二区三区| 视频一区二区三区中文字幕| 亚洲成人www| 亚洲一区二区综合| 亚洲国产精品久久人人爱| 伊人婷婷欧美激情| 亚洲另类色综合网站| 亚洲三级在线播放| 亚洲免费在线观看视频| 亚洲天天做日日做天天谢日日欢| 国产精品婷婷午夜在线观看| 久久亚洲精华国产精华液 | 欧美美女黄视频| 欧美艳星brazzers| 欧美少妇xxx| 欧美日韩精品高清| 欧美一区二区三区日韩| 日韩欧美国产一区二区三区| 91精品欧美一区二区三区综合在 | 成人午夜碰碰视频| 波多野结衣中文字幕一区二区三区| 国产精品资源站在线| 国产激情精品久久久第一区二区| 国产成人精品亚洲777人妖| 国产成人丝袜美腿| 92精品国产成人观看免费| 91国产免费看| 91精品国产综合久久福利软件| 日韩一区二区中文字幕| 精品国产制服丝袜高跟| 中文字幕不卡一区| 一区二区三区精品在线观看| 午夜影视日本亚洲欧洲精品| 麻豆一区二区三| 成人18精品视频| 欧美日本一区二区在线观看| 精品福利在线导航| 1024成人网| 成人av电影在线观看| 色婷婷香蕉在线一区二区| 欧美日韩国产精品成人| 日韩一区二区电影在线| 国产精品免费视频一区| 午夜精品在线视频一区| 国产剧情一区二区三区| 色婷婷亚洲婷婷| 久久久久久电影| 亚洲超碰精品一区二区| 国产麻豆视频精品| 911精品国产一区二区在线| 国产午夜亚洲精品羞羞网站| 亚洲国产毛片aaaaa无费看| 国产麻豆午夜三级精品| 欧美日韩国产成人在线91| 精品国产三级a在线观看| 亚洲日本va在线观看| 国产一区二区三区四区五区美女 | 蜜桃一区二区三区在线|