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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? upnpapi.c

?? Upnp開發(fā)包文件
?? C
?? 第 1 頁 / 共 5 頁
字號:
UpnpSetMaxSubscriptions( IN UpnpDevice_Handle Hnd,                         IN int MaxSubscriptions ){    struct Handle_Info *SInfo = NULL;    if( UpnpSdkInit != 1 ) {        return UPNP_E_FINISH;    }    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Inside UpnpSetMaxSubscriptions \n" );         )        HandleLock(  );    if( ( ( MaxSubscriptions != UPNP_INFINITE )          && ( MaxSubscriptions < 0 ) )        || ( GetHandleInfo( Hnd, &SInfo ) != HND_DEVICE ) ) {        HandleUnlock(  );        return UPNP_E_INVALID_HANDLE;    }    SInfo->MaxSubscriptions = MaxSubscriptions;    HandleUnlock(  );    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Exiting UpnpSetMaxSubscriptions \n" );         )        return UPNP_E_SUCCESS;}  /***************** End of UpnpSetMaxSubscriptions ********************/#endif // INCLUDE_DEVICE_APIS#ifdef INCLUDE_DEVICE_APIS/************************************************************************** * Function: UpnpSetMaxSubscriptionTimeOut  * *  Parameters:	 *		IN UpnpDevice_Handle Hnd: The handle of the device for which the *								maximum subscription time-out is being set. *		IN int MaxSubscriptionTimeOut:The maximum subscription time-out  *									to be accepted * *  Description: *      This function sets the maximum subscription timer. Control points *	will require to send the subscription request before timeout. * *  Return Values: int *      UPNP_E_SUCCESS if successful else sends appropriate error. ***************************************************************************/intUpnpSetMaxSubscriptionTimeOut( IN UpnpDevice_Handle Hnd,                               IN int MaxSubscriptionTimeOut ){    struct Handle_Info *SInfo = NULL;    if( UpnpSdkInit != 1 ) {        return UPNP_E_FINISH;    }    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Inside UpnpSetMaxSubscriptionTimeOut \n" );         )        HandleLock(  );    if( ( ( MaxSubscriptionTimeOut != UPNP_INFINITE )          && ( MaxSubscriptionTimeOut < 0 ) )        || ( GetHandleInfo( Hnd, &SInfo ) != HND_DEVICE ) ) {        HandleUnlock(  );        return UPNP_E_INVALID_HANDLE;    }    SInfo->MaxSubscriptionTimeOut = MaxSubscriptionTimeOut;    HandleUnlock(  );    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Exiting UpnpSetMaxSubscriptionTimeOut \n" );         )        return UPNP_E_SUCCESS;}  /****************** End of UpnpSetMaxSubscriptionTimeOut ******************/#endif // INCLUDE_DEVICE_APIS#ifdef INCLUDE_CLIENT_APIS/************************************************************************** * Function: UpnpSubscribeAsync  * *  Parameters:	 *		IN UpnpClient_Handle Hnd: The handle of the control point for which  *								the subscription request is to be sent. *		IN const char * EvtUrl_const: URL that control point wants to  *								subscribe *		IN int TimeOut: The requested subscription time.  Upon  *                      return, it contains the actual subscription time  *						returned from the service *		IN Upnp_FunPtr Fun : callback function to tell result of the  *							subscription request *		IN const void * Cookie_const: cookie passed by client to give back  *				in the callback function. * *  Description: *      This function performs the same operation as UpnpSubscribeAsync *	but returns immediately and calls the registered callback function  *	when the operation is complete. * *  Return Values: int *      UPNP_E_SUCCESS if successful else sends appropriate error. ***************************************************************************/intUpnpSubscribeAsync( IN UpnpClient_Handle Hnd,                    IN const char *EvtUrl_const,                    IN int TimeOut,                    IN Upnp_FunPtr Fun,                    IN const void *Cookie_const ){    struct Handle_Info *SInfo = NULL;    struct UpnpNonblockParam *Param;    char *EvtUrl = ( char * )EvtUrl_const;    ThreadPoolJob job;    if( UpnpSdkInit != 1 ) {        return UPNP_E_FINISH;    }    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Inside UpnpSubscribeAsync \n" );         )        HandleLock(  );    if( GetHandleInfo( Hnd, &SInfo ) != HND_CLIENT ) {        HandleUnlock(  );        return UPNP_E_INVALID_HANDLE;    }    if( EvtUrl == NULL ) {        HandleUnlock(  );        return UPNP_E_INVALID_PARAM;    }    if( TimeOut != UPNP_INFINITE && TimeOut < 1 ) {        HandleUnlock(  );        return UPNP_E_INVALID_PARAM;    }    if( Fun == NULL ) {        HandleUnlock(  );        return UPNP_E_INVALID_PARAM;    }    Param =        ( struct UpnpNonblockParam * )        malloc( sizeof( struct UpnpNonblockParam ) );    if( Param == NULL ) {        HandleUnlock(  );        return UPNP_E_OUTOF_MEMORY;    }    HandleUnlock(  );    Param->FunName = SUBSCRIBE;    Param->Handle = Hnd;    strcpy( Param->Url, EvtUrl );    Param->TimeOut = TimeOut;    Param->Fun = Fun;    Param->Cookie = ( void * )Cookie_const;    TPJobInit( &job, ( start_routine ) UpnpThreadDistribution, Param );    TPJobSetFreeFunction( &job, ( free_routine ) free );    TPJobSetPriority( &job, MED_PRIORITY );    ThreadPoolAdd( &gSendThreadPool, &job, NULL );    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Exiting UpnpSubscribeAsync \n" );         )        return UPNP_E_SUCCESS;}  /****************** End of UpnpSubscribeAsync *********************/#endif // INCLUDE_CLIENT_APIS#ifdef INCLUDE_CLIENT_APIS/************************************************************************** * Function: UpnpSubscribe  * *  Parameters:	 *		IN UpnpClient_Handle Hnd: The handle of the control point. *		IN const char *PublisherUrl: The URL of the service to subscribe to. *		INOUT int *TimeOut: Pointer to a variable containing the requested  *					subscription time.  Upon return, it contains the *					actual subscription time returned from the service. *		OUT Upnp_SID SubsId: Pointer to a variable to receive the  *							subscription ID (SID).  * *  Description: *      This function registers a control point to receive event *  notifications from another device.  This operation is synchronous * *  Return Values: int *      UPNP_E_SUCCESS if successful else sends appropriate error. ***************************************************************************/intUpnpSubscribe( IN UpnpClient_Handle Hnd,               IN const char *EvtUrl_const,               INOUT int *TimeOut,               OUT Upnp_SID SubsId ){    struct Handle_Info *SInfo = NULL;    int RetVal;    char *EvtUrl = ( char * )EvtUrl_const;    if( UpnpSdkInit != 1 ) {        return UPNP_E_FINISH;    }    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Inside UpnpSubscribe \n" );         )        HandleLock(  );    if( GetHandleInfo( Hnd, &SInfo ) != HND_CLIENT ) {        HandleUnlock(  );        return UPNP_E_INVALID_HANDLE;    }    if( EvtUrl == NULL ) {        HandleUnlock(  );        return UPNP_E_INVALID_PARAM;    }    if( TimeOut == NULL ) {        HandleUnlock(  );        return UPNP_E_INVALID_PARAM;    }    if( SubsId == NULL ) {        HandleUnlock(  );        return UPNP_E_INVALID_PARAM;    }    HandleUnlock(  );    RetVal = genaSubscribe( Hnd, EvtUrl, TimeOut, SubsId );    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Exiting UpnpSubscribe \n" );         )        return RetVal;}  /****************** End of UpnpSubscribe  *********************/#endif // INCLUDE_CLIENT_APIS#ifdef INCLUDE_CLIENT_APIS/************************************************************************** * Function: UpnpUnSubscribe  * *  Parameters:	 *		IN UpnpClient_Handle Hnd: The handle of the control point. *		IN Upnp_SID SubsId: The ID returned when the control point  *                                 subscribed to the service. * *  Description: *      This function removes the subscription of  a control point from a  *  service previously subscribed to using UpnpSubscribe or  *  UpnpSubscribeAsync. This is a synchronous call. * *  Return Values: int *      UPNP_E_SUCCESS if successful else sends appropriate error. ***************************************************************************/intUpnpUnSubscribe( IN UpnpClient_Handle Hnd,                 IN Upnp_SID SubsId ){    struct Handle_Info *SInfo = NULL;    int RetVal;    if( UpnpSdkInit != 1 ) {        return UPNP_E_FINISH;    }    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Inside UpnpUnSubscribe \n" );         )        HandleLock(  );    if( GetHandleInfo( Hnd, &SInfo ) != HND_CLIENT ) {        HandleUnlock(  );        return UPNP_E_INVALID_HANDLE;    }    if( SubsId == NULL ) {        HandleUnlock(  );        return UPNP_E_INVALID_PARAM;    }    HandleUnlock(  );    RetVal = genaUnSubscribe( Hnd, SubsId );    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Exiting UpnpUnSubscribe \n" );         )        return RetVal;}  /****************** End of UpnpUnSubscribe  *********************/#endif // INCLUDE_CLIENT_APIS#ifdef INCLUDE_CLIENT_APIS/************************************************************************** * Function: UpnpUnSubscribeAsync  * *  Parameters:	 *		IN UpnpClient_Handle Hnd: The handle of the subscribed control  *                                point.  *		IN Upnp_SID SubsId:	The ID returned when the control point  *                           subscribed to the service. *		IN Upnp_FunPtr Fun:Pointer to a callback function to be called *                          when the operation is complete.  *		IN const void *Cookie:Pointer to user data to pass to the                              callback function when invoked. * *  Description: *      This function removes a subscription of a control point *  from a service previously subscribed to using UpnpSubscribe or *	UpnpSubscribeAsync,generating a callback when the operation is complete. * *  Return Values: int *      UPNP_E_SUCCESS if successful else sends appropriate error. ***************************************************************************/intUpnpUnSubscribeAsync( IN UpnpClient_Handle Hnd,                      IN Upnp_SID SubsId,                      IN Upnp_FunPtr Fun,                      IN const void *Cookie_const ){    ThreadPoolJob job;    struct Handle_Info *SInfo = NULL;    struct UpnpNonblockParam *Param;    if( UpnpSdkInit != 1 ) {        return UPNP_E_FINISH;    }    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Inside UpnpUnSubscribeAsync \n" );         )        HandleLock(  );    if( GetHandleInfo( Hnd, &SInfo ) != HND_CLIENT ) {        HandleUnlock(  );        return UPNP_E_INVALID_HANDLE;    }    if( SubsId == NULL ) {        HandleUnlock(  );        return UPNP_E_INVALID_PARAM;    }    if( Fun == NULL ) {        HandleUnlock(  );        return UPNP_E_INVALID_PARAM;    }    HandleUnlock(  );    Param =        ( struct UpnpNonblockParam * )        malloc( sizeof( struct UpnpNonblockParam ) );    if( Param == NULL )        return UPNP_E_OUTOF_MEMORY;    Param->FunName = UNSUBSCRIBE;    Param->Handle = Hnd;    strcpy( Param->SubsId, SubsId );    Param->Fun = Fun;    Param->Cookie = ( void * )Cookie_const;    TPJobInit( &job, ( start_routine ) UpnpThreadDistribution, Param );    TPJobSetFreeFunction( &job, ( free_routine ) free );    TPJobSetPriority( &job, MED_PRIORITY );    ThreadPoolAdd( &gSendThreadPool, &job, NULL );    DBGONLY( UpnpPrintf( UPNP_ALL, API, __FILE__, __LINE__,                         "Exiting UpnpUnSubscribeAsync \n" );         )        return UPNP_E_SUCCESS;}  /****************** End of UpnpUnSubscribeAsync  *********************/#endif // INCLUDE_CLIENT_APIS#ifdef INCLUDE_CLIENT_APIS/************************************************************************** * Function: UpnpRenewSubscription  * *  Parameters:	 *		IN UpnpClient_Handle Hnd: The handle of the control point that  *                                is renewing the subscription. *		INOUT int *TimeOut: Pointer to a variable containing the  *                          requested subscription time.  Upon return,  *                          it contains the actual renewal time.  *		IN Upnp_SID SubsId: The 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品综合一区二区三区| 欧洲色大大久久| 91精品国产综合久久香蕉麻豆| 亚洲精品午夜久久久| 日韩伦理av电影| 欧美激情在线一区二区三区| 国产真实精品久久二三区| 久久你懂得1024| 成人妖精视频yjsp地址| 136国产福利精品导航| 在线一区二区观看| 日本欧洲一区二区| 久久综合九色综合欧美亚洲| 成人午夜av电影| 亚洲黄网站在线观看| 欧美乱妇23p| 国产麻豆日韩欧美久久| 亚洲欧美另类图片小说| 欧美美女直播网站| 国产成人免费视频网站| 一区二区三区在线视频观看58| 欧美日韩一区二区三区在线| 狠狠色综合日日| 亚洲欧美日本在线| 欧美大胆一级视频| 91色婷婷久久久久合中文| 日韩高清在线电影| 欧美国产综合一区二区| 欧美精品一二三区| 国产91综合网| 视频一区二区三区入口| 国产欧美精品国产国产专区| 欧美色欧美亚洲另类二区| 久久精品国产99国产| 亚洲欧美日韩国产一区二区三区 | 老司机精品视频导航| 国产精品毛片a∨一区二区三区| 欧美精品色综合| jlzzjlzz欧美大全| 日韩av在线发布| 国产精品高潮呻吟| 欧美一区二区在线观看| 99在线精品一区二区三区| 毛片一区二区三区| 一区二区三区四区视频精品免费| 精品国产一区二区三区四区四| 色香蕉久久蜜桃| 国产精品自拍毛片| 免费观看成人av| 亚洲国产美女搞黄色| 中文字幕一区二区在线播放| 精品久久久久久久久久久久久久久 | 高清国产午夜精品久久久久久| 午夜国产精品一区| 亚洲免费av高清| 国产日产欧美精品一区二区三区| 7777精品久久久大香线蕉| 色吧成人激情小说| 不卡高清视频专区| 国产精品99久久久久久久女警| 欧美性受xxxx| 午夜精品久久久久久久99水蜜桃| 国产亚洲一二三区| 日韩视频在线永久播放| 欧美性videosxxxxx| 91麻豆国产福利精品| 国产伦精品一区二区三区视频青涩 | 精品久久五月天| 久久亚洲捆绑美女| 91精品黄色片免费大全| 欧美狂野另类xxxxoooo| 色激情天天射综合网| 91麻豆福利精品推荐| 色综合天天狠狠| 一本色道久久综合亚洲精品按摩| 不卡区在线中文字幕| 粉嫩av一区二区三区粉嫩| 国产精品一品二品| 国产成人午夜精品影院观看视频 | 国产午夜一区二区三区| 欧美日韩激情一区二区三区| 91丨国产丨九色丨pron| 99久久精品免费| av在线综合网| eeuss鲁片一区二区三区在线观看| 丁香婷婷深情五月亚洲| 国产成人午夜高潮毛片| 成人亚洲一区二区一| www..com久久爱| 91福利精品第一导航| 欧美日韩视频专区在线播放| 欧美三日本三级三级在线播放| 欧美性xxxxxx少妇| 欧美一区二区三区免费大片| 日韩欧美精品三级| 久久久综合视频| 国产农村妇女毛片精品久久麻豆 | 欧美四级电影网| 7777精品伊人久久久大香线蕉经典版下载 | 激情欧美日韩一区二区| 捆绑变态av一区二区三区| 极品销魂美女一区二区三区| 国产原创一区二区三区| 成人精品gif动图一区| 91理论电影在线观看| 欧美日韩久久久一区| 日韩午夜av一区| 中文字幕国产一区| 一区二区三区欧美久久| 美腿丝袜一区二区三区| 成人午夜视频在线观看| 欧美视频在线一区二区三区| 精品少妇一区二区三区视频免付费| 久久久精品2019中文字幕之3| 国产精品国产馆在线真实露脸| 亚洲国产精品久久久男人的天堂 | 欧美色图在线观看| 久久综合久久综合久久综合| 亚洲欧美一区二区三区久本道91| 免费在线成人网| 91热门视频在线观看| 欧美一区二区三区不卡| 国产精品家庭影院| 日本亚洲三级在线| 欧美男女性生活在线直播观看| 欧美日韩一区二区电影| 精品国产1区二区| 亚洲图片欧美激情| 久久成人综合网| 欧美亚洲一区二区在线| 久久欧美一区二区| 日韩精品一级中文字幕精品视频免费观看 | 国产成人精品影视| 777午夜精品免费视频| 国产精品区一区二区三区| 蜜臀99久久精品久久久久久软件| 91麻豆精品视频| 国产视频在线观看一区二区三区| 婷婷六月综合亚洲| 色激情天天射综合网| 国产亚洲福利社区一区| 男男gaygay亚洲| 欧美丝袜丝nylons| 国产精品精品国产色婷婷| 国内精品第一页| 日韩欧美亚洲一区二区| 亚洲国产欧美一区二区三区丁香婷| 粉嫩av一区二区三区| 精品国产乱码久久久久久久 | 国产精品色一区二区三区| 麻豆精品国产91久久久久久| 欧美日韩小视频| 一区二区三区在线看| 99在线视频精品| 国产精品久久久久精k8| 国产精品中文字幕日韩精品| 欧美不卡一二三| 一区二区三区在线观看国产| 极品美女销魂一区二区三区免费 | 欧洲亚洲国产日韩| 国产精品久久网站| 高清在线不卡av| 国产欧美日韩一区二区三区在线观看| 美女国产一区二区三区| 91精品欧美综合在线观看最新| 亚洲综合在线观看视频| 色天使久久综合网天天| 成人欧美一区二区三区在线播放| 国产福利不卡视频| 国产日韩欧美综合在线| 国产成人啪午夜精品网站男同| 欧美成人性战久久| 九色porny丨国产精品| 欧美岛国在线观看| 国产在线播放一区二区三区| 欧美精品一区二区三区视频| 精品一区二区三区欧美| 精品国产一区a| 国产一区在线观看视频| 国产日韩欧美电影| bt欧美亚洲午夜电影天堂| 中文字幕五月欧美| 色丁香久综合在线久综合在线观看| 亚洲综合一区二区| 欧美日韩精品一区二区三区四区| 日韩二区在线观看| 精品伦理精品一区| 丁香天五香天堂综合| 国产精品电影一区二区| 色妞www精品视频| 丝袜亚洲精品中文字幕一区| 欧美不卡123| 波多野结衣中文字幕一区二区三区 | 日韩一区二区高清| 欧美一级二级三级蜜桃| 免费高清视频精品| 久久久亚洲精华液精华液精华液 | 欧美在线色视频| 麻豆视频一区二区| 国产精品色在线观看|