使用图形

使用对等图时,必须按特定顺序调用函数。 调用流取决于是创建还是打开对等图。 本主题标识简单的对等图应用程序中的函数调用流。

启动图形

在应用程序调用对等图形 API 中的函数之前,必须调用 PeerGraphStartup 来初始化应用程序的对等图形 API,然后设置支持的版本。

创建对等图

以下过程标识用于创建对等图的调用流。

重要

只有一个对等应调用 PeerGraphCreate。 所有其他对等应调用 PeerGraphOpen。 多次调用 PeerGraphCreate 会使 图形失效。

 

打开对等图

打开对等图的函数调用流取决于调用 PeerGraphOpen 的返回值。 最重要的值是 S_OKPEER_S_DATA_CREATED,本主题的以下部分对此进行了说明。

注意

如果对 PeerGraphOpen 的调用未返回 S_OKPEER_S_DATA_CREATED,请处理错误。

 

当 PeerGraphOpen 返回S_OK

调用 PeerGraphOpen 返回 S_OK时,已打开对等图和现有数据库。 以下过程标识在调用 PeerGraphOpen 返回时打开对等图可以执行的操作 S_OK

  • 注册对等事件。 调用 PeerGraphRegisterEvent

    注意

    有关注册事件的详细信息,请参阅 事件基础结构

     

  • 找到节点。 这是使用你标识的方法或应用程序在对等图形基础结构外部执行的过程。 对等图形 API 不提供查找要连接到的初始图形节点的特定机制。 应用程序必须使用另一种机制(例如 对等名称解析协议 (PNRP) API)来查找初始节点。

  • 如果找到节点,请连接到该节点。 调用 PeerGraphConnect,然后调用 PeerGraphListen 以侦听与对等图的连接。

    注意

    如果未找到节点,请不要调用 PeerGraphConnectPeerGraphListen

     

  • 在剩余的运行时间内执行依赖于应用程序的函数,例如,处理对等事件并使用连接,具体取决于节点是否连接到对等图。 例如,应用程序可以选择超时或定期对图中的活动节点执行发现。

  • 关闭与对等图的连接。 调用 PeerGraphClose

当 PeerGraphOpen 返回PEER_S_DATA_CREATED

PeerGraphOpen 返回 PEER_S_DATA_CREATED时,这意味着找不到对等图的现有数据库,将创建一个新数据库,这是首次打开该数据库。 若要在对等图上使用或侦听对等图,必须将对等图连接到对等图并与对等图同步。

以下过程标识当调用 PeerGraphOpen 返回 PEER_S_DATA_CREATED时,可以执行哪些操作来打开对等图。

  • 打开对等图。 调用 PeerGraphOpen

  • 注册对等事件。 调用 PeerGraphRegisterEvent

    注意

    有关注册对等事件的详细信息,请参阅 事件基础结构

     

  • 找到节点。 这是使用你标识的方法或应用程序在对等图形基础结构外部执行的过程。 对等图形 API 不提供查找要连接到的初始图形节点的特定机制。 应用程序必须使用另一种机制(例如 对等名称解析协议 (PNRP) API)来查找初始节点。

  • 如果找到节点,请连接到该节点。 调用 PeerGraphConnect,然后调用 PeerGraphListen 以侦听与对等图的连接。

    注意

    如果未找到节点,请不要调用 PeerGraphConnectPeerGraphListen

     

  • 在剩余的运行时间内执行依赖于应用程序的函数,例如,处理对等事件并使用连接,具体取决于节点是否连接到对等图。 例如,应用程序可以选择超时或定期对图中的活动节点执行发现。

  • 关闭与对等图的连接。 调用 PeerGraphClose