📄 ddraw.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>IDirectDraw2接口</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<b><font SIZE="4">
<p align="center"></font><a name="目录"><font color="#FF8000" face="Arial" size="6">IDirectDraw2</font><font
color="#FF8000" size="6">接口</font></a></b></p>
<p align="right" style="margin-top: -10; margin-bottom: -8"><a href="index.htm"
style="text-decoration: none"><span style="text-decoration: none">返回上级</span></a></p>
<hr>
<ol>
<ol>
<font SIZE="3"><p>应用程序使用<font face="Arial">IDirectDraw2</font>接口的方法来创建<font
face="Arial">DirectDraw</font>的各种对象,并且与系统层变量一起工作。这部分是关于该接口的函数参考。<font
SIZE="3" face="Arial">IDirectDraw2</font>接口的函数可以分为以下几组:</p>
</font><table CELLSPACING="0" BORDER="0" CELLPADDING="7" WIDTH="359">
<tr>
<td WIDTH="168" VALIGN="TOP"><font SIZE="3"><b>分配内存</b></font></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::Compact"><font SIZE="3" face="Arial">Compact</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::Initialize"><font SIZE="3"
face="Arial">Initialize</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"><font SIZE="3"><b>创建对象</b></font></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::CreateClipper"><font SIZE="3"
face="Arial">CreateClipper</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::CreatePalette"><font SIZE="3"
face="Arial">CreatePalette</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::CreateSurface"><font SIZE="3"
face="Arial">CreateSurface</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"><font SIZE="3"><b>设备特性</b></font></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::GetCaps"><font SIZE="3" face="Arial">GetCaps</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"><font SIZE="3"><b>显示模式</b></font></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::EnumDisplayModes"><font SIZE="3"
face="Arial">EnumDisplayModes</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::GetDisplayMode"><font SIZE="3"
face="Arial">GetDisplayMode</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::GetMonitorFrequency"><font SIZE="3"
face="Arial">GetMonitorFrequency</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::RestoreDisplayMode"><font SIZE="3"
face="Arial">RestoreDisplayMode</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::SetDisplayMode"><font SIZE="3"
face="Arial">SetDisplayMode</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::WaitForVerticalBlank"><font SIZE="3"
face="Arial">WaitForVerticalBlank</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"><font SIZE="3"><b>显示状态</b></font></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::GetScanLine"><font SIZE="3"
face="Arial">GetScanLine</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::GetVerticalBlankStatus"><font
SIZE="3" face="Arial">GetVerticalBlankStatus</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"><font SIZE="3"><b>杂项</b></font></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::GetAvailableVidMem"><font SIZE="3"
face="Arial">GetAvailableVidMem</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::GetFourCCCodes"><font SIZE="3"
face="Arial">GetFourCCCodes</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"><font SIZE="3"><b>设置控制级</b></font></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::SetCooperativeLevel"><font SIZE="3"
face="Arial">SetCooperativeLevel</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"><font SIZE="3"><b>页面</b></font></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::DuplicateSurface"><font SIZE="3"
face="Arial">DuplicateSurface</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::EnumSurfaces"><font SIZE="3"
face="Arial">EnumSurfaces</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::FlipToGDISurface"><font SIZE="3"
face="Arial">FlipToGDISurface</font></a></td>
</tr>
<tr>
<td WIDTH="168" VALIGN="TOP"></td>
<td WIDTH="163" VALIGN="TOP"><a href="#IDirectDraw2::GetGDISurface"><font SIZE="3"
face="Arial">GetGDISurface</font></a></td>
</tr>
</table>
<font SIZE="3"><p>和所有<font face="Arial">COM</font>接口一样,<font face="Arial">IDirectDraw2</font>接口由<font
face="Arial">IUnknown</font>接口衍生而来。<font face="Arial">IUnknown</font>接口支持以下三种方法:</p>
<p><font face="Arial"> AddRef<br>
QueryInterface<br>
Release</font></p>
<p>你可以使用<font face="Arial">LPDIRECTDRAW</font>或<font face="Arial">LPDIRECTDRAW2</font>数据类型来声明一个指向<font
face="Arial">IDirectDraw</font>或<font face="Arial">IDirectDraw2</font>接口的变量。在<font
face="Arial">Ddraw.h</font>头文件中用以下代码声明了这两种数据类型。</p>
<p><font face="Arial">typedef struct IDirectDraw FAR *LPDIRECTDRAW;<br>
typedef struct IDirectDraw2 FAR *LPDIRECTDRAW2;</font></p>
</font><hr>
</ol>
</ol>
<ol>
<ol>
<font SIZE="3" COLOR="#0000ff"><b>
<li><font face="Arial"><a name="IDirectDraw2::Compact">IDirectDraw2::Compact</a></font></li>
</b></font><font SIZE="3"><p align="right"></font><font color="#FF0000" SIZE="3"><span
style="color: rgb(255,0,0)"><a href="#目录">回到目录</a></span></font><font SIZE="3"></p>
</font><p><font SIZE="3">目前,该函数尚未完成,还不能使用。</font></p>
<font SIZE="3"><p><font face="Arial">HRESULT Compact();</font></p>
<b><p>返回值:</p>
</b><p>如果函数调用成功,返回<font face="Arial">DD_OK</font>。</p>
<p>如果函数调用失败,返回值可能是下列错误值之一:</p>
<p><font face="Arial">DDERR_INVALIDOBJECT<br>
DDERR_INVALIDPARAMS<br>
DDERR_NOEXCLUSIVEMODE<br>
DDERR_SURFACEBUSY</font></p>
<b><p>备注:</p>
</b><p>这个函数将所有位于显卡上的页面内存移动到一块连续的空间,以使剩余的连续内存空间值达到最大。这个函数在执行时,如果被任何其它的操作打断,该函数失败。</p>
<p>应用程序只有将控制级设为独占模式(<font face="Arial">exclusive</font>),才能调用这个函数。</p>
<b><p>快速信息:</p>
</b><p><font face="Arial">Windows NT</font>:适用于<font face="Arial">4.0</font>或更新版<br>
<font face="Arial">Windows</font>:适用于<font face="Arial">Windows 95</font>或更新版<br>
<font face="Arial">Windows CE</font>:不支持<br>
头文件:<font face="Arial">ddraw.h</font><br>
库文件:<font face="Arial">ddraw.lib</font></p>
</font><hr>
<font SIZE="3" COLOR="#0000ff"><b>
<li><font face="Arial"><a name="IDirectDraw2::CreateClipper">IDirectDraw2::CreateClipper</a></font></li>
</b></font><font SIZE="3"><p align="right"></font><font color="#FF0000" SIZE="3"><span
style="color: rgb(255,0,0)"><a href="#目录">回到目录</a></span></font><font SIZE="3"></p>
</font><p><font SIZE="3">创建一个</font><font face="Arial" SIZE="3">DirectDrawClipper</font><font
SIZE="3">对象。</font></p>
<font SIZE="3"><p><font face="Arial">HRESULT CreateClipper(<br>
DWORD dwFlags,<br>
LPDIRECTDRAWCLIPPER FAR *lplpDDClipper,<br>
IUnknown FAR *pUnkOuter<br>
);</font></p>
<b><p>参数:</p>
</b><p><font face="Arial">dwFlags</font><br>
这个参数目前没有被使用,必须置为<font face="Arial">0</font>。</p>
<p><font face="Arial">lplpDDClipper</font><br>
如果该函数调用成功,该参数将接收到指向新创建的<font
face="Arial">DirectDrawClipper</font>对象的指针的地址。 </p>
<p><font face="Arial">pUnkOuter</font><br>
该参数将允许与今后的<font face="Arial">COM</font>集合特性相兼容。目前,只要这个参数不是<font
face="Arial">NULL</font>,<font face="Arial">IDirectDraw2::CreateSurface</font>返回一个错误。
</p>
<b><p>返回值:</p>
</b><p>如果函数调用成功,返回<font face="Arial">DD_OK</font>。<br>
如果函数调用失败,返回值可能是下列错误值之一:</p>
<p><font face="Arial">DDERR_INVALIDOBJECT <br>
DDERR_INVALIDPARAMS <br>
DDERR_NOCOOPERATIVELEVELSET <br>
DDERR_OUTOFMEMORY </font></p>
<p><b>备注:</b></p>
<p><font face="Arial">DirectDrawClipper</font>对象可以被隶属于一个<font
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -