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

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

?? csdn_文檔中心_com深入理解(下)——方法參數類型為cruntimeclass、void等.htm

?? csdn10年中間經典帖子
?? HTM
?? 第 1 頁 / 共 4 頁
字號:
            <SPAN style="COLOR: blue">unsigned</SPAN> <SPAN 
            style="COLOR: blue">long</SPAN>&nbsp; 
            StartingSize,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            PA* <SPAN style="COLOR: green">/* ppA */</SPAN> )<BR>{<BR><SPAN 
            style="COLOR: green">// 
            之所以有StartingSize,因為此參數可能并不是第一個被列集的參數,</SPAN><BR><SPAN 
            style="COLOR: green">// 如:HRESULT SetA( [in] long tem1, [in] char 
            tem2, [in] PA a );</SPAN><BR><SPAN style="COLOR: green">// 
            此時的StartingSize就為sizeof( long ) + sizeof( char )</SPAN><BR><SPAN 
            style="COLOR: green">// 而之所以還要再將其傳進來是為了對齊需要</SPAN><BR><BR><SPAN 
            style="COLOR: green">// 此處沒有進行對齊處理,因為結構_SA是只有兩個unsigned 
            long的簡單</SPAN><BR><SPAN style="COLOR: green">// 
            結構,無須再刻意對齊。</SPAN><BR>&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: blue">return</SPAN> StartingSize + <SPAN 
            style="COLOR: blue">sizeof</SPAN>( _SA );<BR>}<BR><SPAN 
            style="COLOR: blue">unsigned</SPAN> <SPAN 
            style="COLOR: blue">char</SPAN>* __RPC_USER PA_UserMarshal( <SPAN 
            style="COLOR: blue">unsigned</SPAN> <SPAN 
            style="COLOR: blue">long</SPAN> 
            *pFlags,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            <SPAN style="COLOR: blue">unsigned</SPAN> <SPAN 
            style="COLOR: blue">char</SPAN> 
            *Buffer,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            PA *ppA )<BR>{<BR><SPAN style="COLOR: green">// 
            按線種類(即結構_SA)的定義填沖緩沖區,注意必須按照NDR傳輸格式</SPAN><BR><SPAN 
            style="COLOR: green">// 
            進行填充,這里由于_SA簡單,所以只是簡單地復制,沒有什么對齊及一</SPAN><BR><SPAN 
            style="COLOR: green">// 致性數據的問題。關于NDR傳輸格式的詳細內容,請參考</SPAN><BR><SPAN 
            style="COLOR: green">// <A 
            href="http://www.opengroup.org/onlinepubs/9629399/chap14.htm">http://www.opengroup.org/onlinepubs/9629399/chap14.htm</A></SPAN><BR>&nbsp;&nbsp;&nbsp; 
            <SPAN style="COLOR: blue">if</SPAN>( *pFlags &amp; MSHCTX_INPROC 
            )<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: green">// 
            是進程內調用,直接將CA*進行傳遞,而不進行拷貝</SPAN><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            *<SPAN style="COLOR: blue">reinterpret_cast</SPAN>&lt; <SPAN 
            style="COLOR: blue">void</SPAN>** &gt;( Buffer ) = 
            *ppA;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: blue">else</SPAN><BR>&nbsp;&nbsp;&nbsp; 
            {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CA *pA = <SPAN 
            style="COLOR: blue">reinterpret_cast</SPAN>&lt; CA* &gt;( *ppA 
            );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PSA pSA = <SPAN 
            style="COLOR: blue">reinterpret_cast</SPAN>&lt; PSA &gt;( Buffer 
            );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pSA-&gt;a = 
            pA-&gt;m_a;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pSA-&gt;b 
            = pA-&gt;m_b;<BR>&nbsp;&nbsp;&nbsp; }<BR><BR><SPAN 
            style="COLOR: green">// 返回緩沖區的有效位置,當前位置后的sizeof( _SA 
            )個字節</SPAN><BR>&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: blue">return</SPAN> Buffer + <SPAN 
            style="COLOR: blue">sizeof</SPAN>( _SA );<BR>}<BR><SPAN 
            style="COLOR: blue">unsigned</SPAN> <SPAN 
            style="COLOR: blue">char</SPAN>* __RPC_USER PA_UserUnmarshal( <SPAN 
            style="COLOR: blue">unsigned</SPAN> <SPAN 
            style="COLOR: blue">long</SPAN> 
            *pFlags,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            <SPAN style="COLOR: blue">unsigned</SPAN> <SPAN 
            style="COLOR: blue">char</SPAN> 
            *Buffer,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            PA *ppA )<BR>{<BR>&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: blue">if</SPAN>( *pFlags &amp; MSHCTX_INPROC 
            )<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: green">// 
            是進程內調用,直接將CA*進行傳遞,而不進行拷貝</SPAN><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            *ppA = *<SPAN style="COLOR: blue">reinterpret_cast</SPAN>&lt; <SPAN 
            style="COLOR: blue">void</SPAN>** &gt;( Buffer 
            );<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: blue">else</SPAN><BR>&nbsp;&nbsp;&nbsp; 
            {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: blue">void</SPAN> *p = CoTaskMemAlloc( <SPAN 
            style="COLOR: blue">sizeof</SPAN>( CA ) 
            );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: blue">if</SPAN>( !p 
            )<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            <SPAN style="COLOR: blue">return</SPAN> Buffer + <SPAN 
            style="COLOR: blue">sizeof</SPAN>( _SA 
            );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CA *pAA = <SPAN 
            style="COLOR: blue">new</SPAN>( p ) CA;&nbsp; <SPAN 
            style="COLOR: green">// 
            生成一個類對象</SPAN><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PSA 
            pSA = <SPAN style="COLOR: blue">reinterpret_cast</SPAN>&lt; PSA 
            &gt;( Buffer );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            pAA-&gt;m_a = 
            pSA-&gt;a;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pAA-&gt;m_b 
            = pSA-&gt;b;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; *ppA 
            = p;<BR>&nbsp;&nbsp;&nbsp; }<BR><BR><SPAN style="COLOR: green">// 
            返回緩沖區的有效位置,當前位置后的sizeof( _SA )個字節</SPAN><BR>&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: blue">return</SPAN> Buffer + <SPAN 
            style="COLOR: blue">sizeof</SPAN>( _SA );<BR>}<BR><SPAN 
            style="COLOR: blue">void</SPAN> __RPC_USER PA_UserFree( <SPAN 
            style="COLOR: blue">unsigned</SPAN> <SPAN 
            style="COLOR: blue">long</SPAN> 
            *pFlags,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            PA *ppA )<BR>{<BR>&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: blue">if</SPAN>( !( *pFlags &amp; MSHCTX_INPROC&nbsp; 
            ) )<BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; <SPAN 
            style="COLOR: green">// 
            不是進程內匯集,分配了內存,釋放資源</SPAN><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            CA *pAA = <SPAN style="COLOR: blue">reinterpret_cast</SPAN>&lt; CA* 
            &gt;( *ppA );<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            pAA-&gt;~CA();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
            CoTaskMemFree( pAA );<BR>&nbsp;&nbsp;&nbsp; 
            }<BR>}<BR>&nbsp;&nbsp;&nbsp; 使用中,則:<BR>IAbc *pA;&nbsp; <SPAN 
            style="COLOR: green">// 假設已初始化</SPAN><BR>CA a;<BR>a.SetA( 654 
            );<BR>PA pAA = &amp;a;<BR>pA-&gt;SetA( pAA );&nbsp; <SPAN 
            style="COLOR: green">// 或者直接pA-&gt;SetA( &amp;a 
            );</SPAN><BR>pA-&gt;GetA( &amp;a ); 
            <P></P>
            <P>&nbsp;&nbsp;&nbsp; 
            非常明顯,MIDL提供的可用于自定義類型傳遞的屬性很正常地不止上面幾個,如:[transmit_as()]、[handle]等,在此僅起拋磚引玉的作用,關于MIDL提供的其他屬性,還請參考MSDN。上面的實現方法中,都不僅僅提供了匯集自定義數據類型的渠道,還提供了優化的途徑(如上面的pFlags標志參數)。因此在編寫代理/占位組件時,應考慮在關鍵地方應用類似的屬性進行生成代碼的優化。</P></FONT><BR></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><BR>
<TABLE align=center bgColor=#006699 border=0 cellPadding=0 cellSpacing=0 
width=770>
  <TBODY>
  <TR bgColor=#006699>
    <TD align=middle bgColor=#006699 id=white><FONT 
    color=#ffffff>對該文的評論</FONT></TD>
    <TD align=middle>
      <SCRIPT 
      src="CSDN_文檔中心_COM深入理解(下)——方法參數類型為CRuntimeClass、void等.files/readnum.htm"></SCRIPT>
    </TD></TR></TBODY></TABLE><BR>
<DIV align=center>
<TABLE align=center bgColor=#cccccc border=0 cellPadding=2 cellSpacing=1 
width=770>
  <TBODY>
  <TR>
    <TH bgColor=#006699 id=white><FONT 
color=#ffffff>我要評論</FONT></TH></TR></TBODY></TABLE></DIV>
<DIV align=center>
<TABLE border=0 width=770>
  <TBODY>
  <TR>
    <TD>你沒有登陸,無法發表評論。 請先<A 
      href="http://www.csdn.net/member/login.asp?from=/Develop/read_article.asp?id=27401">登陸</A> 
      <A 
href="http://www.csdn.net/expert/zc.asp">我要注冊</A><BR></TD></TR></TBODY></TABLE></DIV><BR>
<HR noShade SIZE=1 width=770>

<TABLE border=0 cellPadding=0 cellSpacing=0 width=500>
  <TBODY>
  <TR align=middle>
    <TD height=10 vAlign=bottom><A 
      href="http://www.csdn.net/intro/intro.asp?id=2">網站簡介</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=5">廣告服務</A> - <A 
      href="http://www.csdn.net/map/map.shtm">網站地圖</A> - <A 
      href="http://www.csdn.net/help/help.asp">幫助信息</A> - <A 
      href="http://www.csdn.net/intro/intro.asp?id=2">聯系方式</A> - <A 
      href="http://www.csdn.net/english">English</A> </TD>
    <TD align=middle rowSpan=3><A 
      href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010"><IMG 
      border=0 height=48 
      src="CSDN_文檔中心_COM深入理解(下)——方法參數類型為CRuntimeClass、void等.files/biaoshi.gif" 
      width=40></A></TD></TR>
  <TR align=middle>
    <TD vAlign=top>百聯美達美公司 版權所有 京ICP證020026號</TD></TR>
  <TR align=middle>
    <TD vAlign=top><FONT face=Verdana>Copyright &copy; CSDN.net, Inc. All rights 
      reserved</FONT></TD></TR>
  <TR>
    <TD height=15></TD>
    <TD></TD></TR></TBODY></TABLE></DIV>
<DIV></DIV><!--內容結束//--><!--結束//--></BODY></HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本视频一区二区| 国产精品久久久久久久久久久免费看| 亚洲人成7777| 99精品偷自拍| 亚洲欧洲成人精品av97| 成人精品电影在线观看| 亚洲丝袜精品丝袜在线| 欧美专区日韩专区| 午夜精品国产更新| 日韩欧美国产午夜精品| 狠狠v欧美v日韩v亚洲ⅴ| 久久婷婷一区二区三区| 成人小视频免费在线观看| 中文字幕亚洲不卡| 91久久精品一区二区二区| 亚洲成人手机在线| 日韩免费成人网| 国产成人精品免费| 亚洲免费在线视频| 69p69国产精品| 国产一区二区三区黄视频| 国产精品久久久久久久岛一牛影视 | 亚洲图片欧美激情| 欧美特级限制片免费在线观看| 午夜视频一区在线观看| 日韩欧美在线影院| 国产成人在线电影| 亚洲丰满少妇videoshd| 欧美成人精品二区三区99精品| 国产美女一区二区| 亚洲国产成人高清精品| 久久综合狠狠综合久久综合88 | 欧美大片国产精品| 成人精品视频一区二区三区尤物| 一区二区免费在线| 欧美va亚洲va| 91久久精品日日躁夜夜躁欧美| 视频在线观看一区| 国产精品第四页| 日韩一区二区精品葵司在线| 91在线无精精品入口| 日本不卡在线视频| 日韩美女视频一区| 2020日本不卡一区二区视频| 日本久久一区二区三区| 国产精品综合在线视频| 亚洲一区二区三区爽爽爽爽爽| 久久午夜老司机| 欧美日韩视频专区在线播放| 成人免费的视频| 免费成人深夜小野草| 亚洲一区二区三区精品在线| 国产精品青草久久| 欧美一级日韩免费不卡| 色综合久久88色综合天天| 精品亚洲国内自在自线福利| 亚洲一级电影视频| 最近中文字幕一区二区三区| 久久综合999| 777欧美精品| 在线观看三级视频欧美| jlzzjlzz亚洲日本少妇| 国产一区二区0| 蜜桃视频第一区免费观看| 亚洲国产成人tv| 亚洲综合免费观看高清完整版 | 91在线视频官网| 国产精品亚洲一区二区三区在线| 青娱乐精品在线视频| 亚洲另类一区二区| 国产欧美日韩麻豆91| 欧美精品一区二区三区四区| 欧美精品1区2区3区| 久久99精品国产.久久久久| 亚洲黄色av一区| 国产精品卡一卡二| 3d动漫精品啪啪1区2区免费| 日本韩国一区二区三区| 一区二区三区精品久久久| 日韩欧美一二三| 欧美精品vⅰdeose4hd| 91久久精品一区二区三| 波多野结衣91| 国产suv一区二区三区88区| 蜜臀a∨国产成人精品| 亚洲国产一区二区视频| 国产日本欧洲亚洲| 亚洲国产精品黑人久久久| 日韩你懂的电影在线观看| 欧美日韩成人一区| 91成人国产精品| 色婷婷激情一区二区三区| 成av人片一区二区| 国产综合久久久久久久久久久久| 国产一区二区三区免费播放| 久久成人免费电影| 免费在线看成人av| 免费亚洲电影在线| 欧美aaa在线| 精品一区二区三区免费视频| 蜜桃视频在线观看一区| 亚洲国产精品久久艾草纯爱| 免费xxxx性欧美18vr| 免费av网站大全久久| 久久99久久精品| 国模少妇一区二区三区| 国产福利精品导航| 国产91在线观看| 国产iv一区二区三区| 一本色道综合亚洲| 欧美在线免费播放| 91精品国产综合久久精品图片| 欧美日韩在线亚洲一区蜜芽| 精品视频在线看| 日韩一级片在线观看| 久久精品夜夜夜夜久久| 亚洲国产精品久久久久秋霞影院 | 99在线精品观看| 91在线精品秘密一区二区| 色婷婷精品久久二区二区蜜臂av| 一本一本大道香蕉久在线精品 | 99在线精品视频| 在线免费观看日本欧美| 69堂精品视频| 日韩免费看网站| 中文一区二区完整视频在线观看| 亚洲欧美日韩小说| 亚洲影视在线观看| 亚洲成人在线免费| 调教+趴+乳夹+国产+精品| 激情小说欧美图片| 国产91精品在线观看| 91欧美一区二区| 国产精品久久久久久亚洲伦| 欧美xxxxx裸体时装秀| 中文字幕一区二区三区视频| 2023国产精品视频| 欧美精品日韩精品| 久久精品国产免费| 国产成人精品网址| 欧美色手机在线观看| 亚洲精品一区二区三区福利| 亚洲欧美日韩在线不卡| 美女视频网站久久| 国产精品综合一区二区三区| 欧美日韩一区精品| 久久久久国产精品人| 亚洲一区二区中文在线| 国产高清视频一区| 欧美日韩国产免费一区二区| 国产日韩精品一区二区浪潮av| 亚洲一区二区在线观看视频 | 亚洲精品ww久久久久久p站| 免费xxxx性欧美18vr| 99视频国产精品| 欧美成人猛片aaaaaaa| 亚洲女子a中天字幕| 国产精品亚洲第一| 色狠狠色狠狠综合| 1000精品久久久久久久久| 麻豆国产精品777777在线| 91麻豆国产自产在线观看| 精品久久国产97色综合| 亚洲一区二区在线免费看| 成人av在线观| 欧美一区二区视频网站| 丝袜亚洲另类丝袜在线| 色诱视频网站一区| 一区二区三区中文字幕| 国产精品综合网| 精品国产区一区| 天天影视涩香欲综合网| 在线视频欧美区| 国产精品美女久久久久久2018| 国产一区二区三区黄视频| 7799精品视频| 久久国产精品72免费观看| 3d成人动漫网站| 日韩国产精品久久| 欧美视频在线播放| 欧美国产精品v| 97精品久久久久中文字幕| 欧美国产乱子伦 | 久久免费视频一区| 国产在线不卡一卡二卡三卡四卡| 欧美一级在线视频| 蜜芽一区二区三区| 欧美一区二区三区四区高清| 一区二区在线看| 欧美日韩国产成人在线91| 亚洲在线视频网站| 欧美色图12p| 调教+趴+乳夹+国产+精品| 3d成人动漫网站| 美女脱光内衣内裤视频久久网站 | 日韩视频免费观看高清完整版在线观看| 亚洲亚洲精品在线观看| 欧美一区二区在线看| 日韩国产精品大片| 日韩欧美三级在线|