hr = g_pDPServer->GetClientInfo(                        \
                      CreatePlayer->dpnidPlayer, PlayerInfo,  \
                      &dwSize, 0);
      if(FAILED(hr) && hr != DPNERR_BUFFERTOOSMALL) {
        // Skip this if it's a host player
        if(hr == DPNERR_INVALIDPLAYER)
          break;
        return E_FAIL;
      }
我想知道这几句话的意思,谢谢~

解决方案 »

  1.   

    GetClientInfo::获取线程或者进程的ID号,同时,他指出客户的权利和状态typedef struct _SECPKG_CLIENT_INFO {  
    LUID LogonId;  
    ULONG ProcessID;  
    ULONG ThreadID;  
    BOOLEAN HasTcbPrivilege; 
     BOOLEAN Impersonating;  
    BOOLEAN Restricted;
    } SECPKG_CLIENT_INFO,  *PSECPKG_CLIENT_INFO;
      

  2.   

    都是自定义的类和方法g_pDPServer服务器端获得客户端信息,获得玩家信息,如果无效的玩家信息就返回错误代码意思只能这样理解
      

  3.   

    hr = g_pDPServer->GetClientInfo(                        \ 
                          CreatePlayer->dpnidPlayer, PlayerInfo,  \ 
                          &dwSize, 0); //得到客户端播放器的信息
          if(FAILED(hr) && hr != DPNERR_BUFFERTOOSMALL) //如果获取信息失败而且不是因为缓冲区太小

            // Skip this if it's a host player 
            if(hr == DPNERR_INVALIDPLAYER) //是不合法的播放器
              break; 
            return E_FAIL;