乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      URL Moniker之CreateUrlMoniker的使用

       quasiceo 2014-07-14

      URL Moniker之CreateUrlMoniker的使用

      打算要看一下URL moniker的內(nèi)容,先從基本的入手,下面是一個(gè)簡單的使用URLmoniker的程序

      復(fù)制代碼
          BOOL ShowHtml()
      {

      HINSTANCE hinstMSHTML = LoadLibrary(TEXT("MSHTML.DLL"));

      if (hinstMSHTML == NULL)
      {
      // Error loading module -- fail as securely as possible
      return FALSE;
      }

      SHOWHTMLDIALOGFN* pfnShowHTMLDialog;
      pfnShowHTMLDialog = (SHOWHTMLDIALOGFN*)GetProcAddress(hinstMSHTML,
      "ShowHTMLDialog");
      if (pfnShowHTMLDialog)
      {
      IMoniker *pURLMoniker;
      BSTR bstrURL = SysAllocString(L"http://www./dialogsource.htm");
      CreateURLMoniker(NULL, bstrURL, &pURLMoniker);

      if (pURLMoniker)
      {
      (*pfnShowHTMLDialog)(NULL, pURLMoniker, NULL, NULL, NULL);
      pURLMoniker->Release();
      }

      SysFreeString(bstrURL);
      }

      FreeLibrary(hinstMSHTML);
      return TRUE;
      }
      復(fù)制代碼

      其中ShowHTMLDialog的函數(shù)原型如下:

      復(fù)制代碼
      HRESULT ShowHTMLDialog(
      HWND hwndParent,
      IMoniker *pMk,
      VARIANT *pvarArgIn,
      LPWSTR pchOptions,
      VARIANT *pvarArgOut
      );
      復(fù)制代碼

      第一個(gè)參數(shù)hwndParent是對(duì)話框的父窗體句柄,第二個(gè)參數(shù)pMk是要加載的html頁面對(duì)應(yīng)的Imoniker接口;第三個(gè)參數(shù)是傳遞的參數(shù),可以通過window對(duì)象的dialogArguments 屬性來獲取;第四個(gè)參數(shù)的關(guān)于窗體的可選項(xiàng),具體可以參考IHTMLWindow2::showModalDialog 方法,這個(gè)方法中對(duì)可選項(xiàng)有詳細(xì)的說明;最后一個(gè)參數(shù)用于返回對(duì)話框的返回參數(shù)。msdn中有兩個(gè)相關(guān)的代碼如下:

      第一個(gè)html文件source.html

      復(fù)制代碼
      <HTML>
      <HEAD>
      <SCRIPT>
      function fnLaunch()
      {
      var aForm;
      aForm
      = oForm.elements;
      var myObject = new Object();
      myObject.firstName
      = aForm.oFirstName.value;
      myObject.lastName
      = aForm.oLastName.value;
      // The object "myObject" is sent to the modal window.
      window.showModalDialog("modalDialogSource.htm", myObject, "dialogHeight:300px; dialogLeft:200px;");
      }
      </SCRIPT>
      </HEAD>
      <BODY>
      <BUTTON onclick="fnLaunch();" >Launch The Dialog</BUTTON>
      <FORM ID= "oForm">
      First Name:
      <INPUT TYPE="text" NAME="oFirstName" VALUE="Jane">
      <BR>
      Last Name:
      <INPUT TYPE="text" NAME="oLastName" VALUE="Smith">
      </FORM>
      </BODY>
      </HTML>
      復(fù)制代碼

      第二個(gè)html文件target.html

      復(fù)制代碼
      <HTML>
      <HEAD>
      <SCRIPT>
      var oMyObject = window.dialogArguments;
      var sFirstName = oMyObject.firstName;
      var sLastName = oMyObject.lastName;
      </SCRIPT>
      <title>Untitled</title>
      </head>
      <BODY STYLE="font-family: arial; font-size: 14pt; color: Snow;
      background-color: RosyBrown;"
      >

      First Name:
      <SPAN STYLE="color:00ff7f">
      <SCRIPT>
      document.write(sFirstName);
      </SCRIPT>
      </SPAN>
      <BR>
      Last Name:
      <SPAN STYLE="color:00ff7f">
      <SCRIPT>
      document.write(sLastName);
      </SCRIPT>
      </SPAN>
      </BODY>
      </HTML>
      復(fù)制代碼

      上面兩個(gè)文件主要通過js來調(diào)用window的showModalDialog函數(shù)來達(dá)到彈出對(duì)話框,并傳遞參數(shù)的作用。

      在上例中,給target傳遞的是一個(gè)object,我暫時(shí)不知道object對(duì)應(yīng)到c++中得什么類型,所以為了簡單起見,傳遞一個(gè)字符串作為輸入?yún)?shù),

      對(duì)應(yīng)的html中得js調(diào)整如下:

      alert(window.dialogArguments.length);
      alert(window.dialogArguments.toString());

      window.returnValue = "hello world";

      我們將上面的C++代碼進(jìn)行修改,來達(dá)到相同的目的,通過C++代碼彈出對(duì)話框,加載target.html,同時(shí)傳遞參數(shù)。

      復(fù)制代碼
                  IMoniker *pURLMoniker;
      BSTR bstrURL = SysAllocString(L"http://localhost/mylocalhost/windowTst/showwindowtst.html");
      CreateURLMoniker(NULL, bstrURL, &pURLMoniker);

      if (pURLMoniker)
      {
      CComVariant varin(L"abc");

      CComVariant varOut;

      (*pfnShowHTMLDialog)(m_hWnd, pURLMoniker, &varin, L"dialogHeight:300px; dialogLeft:200px;", &varOut);
      pURLMoniker->Release();
      }
      復(fù)制代碼

      可以運(yùn)行,并且varout可以獲取到關(guān)閉后返回的字符串hello world。

      CreateUrlMoniker原型如下:

      HRESULT CreateURLMoniker(
      IMoniker *pMkCtx,
      LPCWSTR szURL,
      IMoniker **ppmk
      );

      第二個(gè)參數(shù)是要加載的url,第三個(gè)參數(shù)就是返回url對(duì)應(yīng)的moniker, 如果第二參數(shù)是一個(gè)相對(duì)的url,那么第一個(gè)參數(shù)就是一個(gè)baseurl,pMkCtx和szurl合起來組成一個(gè)完成的URL。

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多