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

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

?? udmain.c

?? 工業組態軟件modbus驅動源代碼, 包括幫助文件.共享.
?? C
?? 第 1 頁 / 共 4 頁
字號:
        return FALSE;
    }
	
	// 3/4/2000  modify by Chen jun,將不可寫的Item取消寫命令
	// skip, if READ only tag
	switch (lpSymEnt->msPlcDataType) {
		case	ITEM_INPUT_COIL:
		case	ITEM_INPUT_REG:
			return FALSE;
	}

    /*
     * Build a message to write the new data value.
     * Schedule it to be written as soon as possible.
     * It should have higher priority than regular poll messages.
     */

    Ok = UdprotPrepareWriteMsg(lpTopic, lpSymEnt, ptValue);

#ifdef DEBUG_CALL_TRAFFIC
    if (Verbose)
        debug("ProtNewValueForDevice( %8lX, %8lX, %8lX ) => %d",
              hLogDev, hProt, ptValue, (int) Ok);
#endif

    /* indicate TRUE if success */
    return Ok;
} /* ProtNewValueForDevice */

/***********************************************************************/
/** Deactivate a point.
    Called when no active requests for the point remain.
    The data structures representing the point must be deleted. **/

BOOL
WINAPI
ProtDeactivatePoint(HLOGDEV hLogDev,    /* Identifies the topic */
                    HPROT hProt)        /* Identifies the item  */
{
    unsigned long   SymIndex;
    BOOL            success = TRUE;
    LPSTAT          lpTopic;
    SYMPTR          lpSymEnt;

#ifdef DEBUG_CALL_TRAFFIC
    if (Verbose)
        debug("ProtDeactivatePoint( %8lX, %8lX )", hLogDev, hProt);
#endif

    /* indicate error if either logical device or handle is NULL */
    assert(hLogDev);
    assert(hProt);

    /* get pointer to station structure */
    lpTopic = (LPSTAT) hLogDev;
    if (lpTopic == (LPSTAT) NULL) {
        /* unable to access structure, indicate error */
        return FALSE;
    }

    /* Check whether this is the reserved point STATUS */
    if (hProt == HPROT_STATUS) {
        /* STATUS point, deactivate it */
        lpTopic->statStatusActive = FALSE;
        lpTopic->statStatusDue = FALSE;
        return TRUE;
    }

    /* not STATUS, check for valid handle */
    if (hProt < SYM_OFFSET) {
        /* invalid handle, indicate error */
        return FALSE;
    }

    /* get symbol table index based on handle */
    SymIndex = (unsigned long) (hProt - SYM_OFFSET);

    /* get pointer to point's symbol table entry */
    lpSymEnt = (SYMPTR) GetExtArrayMemberPtr (&lpTopic->statSymTab, SymIndex);
    if (lpSymEnt == (SYMPTR) NULL) {
        /* indicate error if no symbol table or out of range */
        return FALSE;
    } else {
        /* check whether point is active */
        if (lpSymEnt->msActive) {
            /* Mark the point as deactivated in the symbol table */
            lpSymEnt->msActive = FALSE;
            /*
             * Remove it from the poll message that encompasses it
             * Perhaps delete the message if no other points remain.
             */
            success = UdprotDelPoll(lpTopic, lpSymEnt);
            /* indicate error if cannot remove from poll message */
            assert(success);
        }
    }

    /* update the screen */
    DumpScreen();
    /* indicate success if TRUE */
    return (success);
} /* ProtDeactivatePoint */

/***********************************************************************/
/** Delete a point.
    Called when it's time to remove a point from the symbol table. **/

BOOL
WINAPI
ProtDeletePoint(HLOGDEV hLogDev,   /* Identifies the topic */
                HPROT hProt)       /* Identifies the item  */
{
    unsigned long   SymIndex;
    LPSTAT          lpTopic;
    SYMPTR          lpSymEnt;
    BOOL            Ok = FALSE;

#ifdef DEBUG_CALL_TRAFFIC
    if (Verbose)
        debug("ProtDeletePoint( %8lX, %8lX )", hLogDev, hProt);
#endif

    /* indicate error if either logical device or handle is NULL */
    assert(hLogDev);
    assert(hProt);

    /* get pointer to station data structure */
    lpTopic = (LPSTAT) hLogDev;
    if (lpTopic == (LPSTAT) NULL) {
        /* unable to access structure, indicate error */
        return FALSE;
    }

    /* First check whether this is the reserved point STATUS */
    if (hProt == HPROT_STATUS) {
        /* STATUS point, clear DB pointer and deactivate point */
        lpTopic->statHdbStatus = (HDB) NULL;
        lpTopic->statStatusActive = FALSE;
        lpTopic->statStatusDue = FALSE;
        /* indicate success */
        return TRUE;
    }

    /* not STATUS, check for valid handle */
    if (hProt < SYM_OFFSET) {
        /* invalid handle, indicate error */
        return FALSE;
    }

    /* get symbol table index based on handle */
    SymIndex = (unsigned long) (hProt - SYM_OFFSET);

    /* get pointer to point's symbol table entry */
    lpSymEnt = (SYMPTR) GetExtArrayMemberPtr (&lpTopic->statSymTab, SymIndex);
    if (lpSymEnt == (SYMPTR) NULL) {
        /* indicate error if no symbol table or out of range */
        return FALSE;
    }

    /* remove the point's symbol table entry */
    if (UdprotUnchainSymEnt(lpTopic, lpSymEnt)) {
        /* Return the entry to the free list */
        if (UdprotFreeSymEnt(lpTopic, lpSymEnt)) {
            /* point freed, indicate success */
            Ok = TRUE;
        }
    }
    /* indicate success if TRUE */
    return Ok;
} /* ProtDeletePoint */

/***********************************************************************/
/** Place the driver in the suspended state
    and update the menu to reflect it. **/

void
WINAPI
UdprotSuspend()
{
    HANDLE          hMenu;

    ProtocolSuspended = TRUE;

    hMenu = GetSystemMenu(hWndParent, FALSE);
    EnableMenuItem(hMenu, MENU_SUSPEND, MF_GRAYED);
    EnableMenuItem(hMenu, MENU_RESUME, MF_ENABLED);
} /* UdprotSuspend */

/***********************************************************************/
/** Return the driver to the active state
    and update the menu to reflect it. **/

void
WINAPI
UdprotResume()
{
    HANDLE          hMenu;

    ProtocolSuspended = FALSE;

    hMenu = GetSystemMenu(hWndParent, FALSE);
    EnableMenuItem(hMenu, MENU_SUSPEND, MF_ENABLED);
    EnableMenuItem(hMenu, MENU_RESUME, MF_GRAYED);
} /* UdprotResume */

/***********************************************************************/
/** Dump status information to the screen.
    Called to update the status information
    which is displayed in the client area. **/

VOID
WINAPI
DumpScreen()
{

    if (!IsIconic(hWndParent)) {
        InvalidateRect(hWndParent, (LPRECT)NULL, TRUE);
    }
} /* DumpScreen */

/***********************************************************************/
/** get difference between time marks, handling wrap-around **/

static
DWORD
WINAPI
TickDiff (DWORD dwFrom, DWORD dwTo)
{
    if (dwTo >= dwFrom)
    {
        return (dwTo - dwFrom);
    }
    else
    {
        /* wrap-around */
        return ((((DWORD) 0xFFFFFFFFL) - dwFrom) + dwTo);
    }
} /* TickDiff */

/***********************************************************************/
/** get difference between current time and last timer **/

DWORD
WINAPI
GetDeltaTime (VOID)
{
    return (TickDiff (lastTimer, GetCurrentTime ()));
} /* GetDeltaTime */

/***********************************************************************/
/* respond to ABOUT menu item */

void WINAPI
UdDisplayAbout (HWND hWnd)
{
#if ((defined(USING_WW_COMMONUI) && defined(WIN32)) || defined(USING_WW_ABOUT))
    /* use Wonderware about box */
 #ifdef USING_WW_COMMONUI
    /* display Wonderware Common UI About Box */
    Common_SetAppInstance(hInst);
    Common_ShowAboutBox (COMMON_IOSERVER32ID, szServerIDstring);
 #else
    /* display Wonderware Common Dialog About Box */
    WW_AB_INFO    AboutBoxInfo;
    HICON         hIcon;

    memset (&AboutBoxInfo, 0, sizeof(AboutBoxInfo));
    hIcon = LoadIcon(hInst, "Udprot");

    AboutBoxInfo.hwndOwner    = hWnd;
    AboutBoxInfo.szDriverName = GetAppName();
    AboutBoxInfo.szId         = GetString(STRUSER + 142);

    // DV - FS2000 porting changes
    // remove all refrences to the hardcoded version number. Pick up the version number from the RC file.
    //AboutBoxInfo.szVersion    = GetString(STRUSER + 0);

    AboutBoxInfo.szVersion    = NULL;
    AboutBoxInfo.szCopyright  = GetString(STRUSER + 143);
    AboutBoxInfo.hIcon        = hIcon;
    AboutBoxInfo.szComment    = GetString(STRUSER + 149);

    WWDisplayAboutBoxEx((LPWW_AB_INFO) &AboutBoxInfo, COMMON_IOSERVER32ID, (LPSTR)"");
    DestroyIcon (hIcon);
 #endif
#else
    /* use privately-defined about box */
    FARPROC       lpprocAbout;

    lpprocAbout = MakeProcInstance((FARPROC) UdPrivateAbout, hInst);
    DialogBox(hInst, GetString(STRUSER + 75) /* "ABOUT_BOX" */ ,
               hWnd, lpprocAbout);
 #ifndef WIN32
    FreeProcInstance(lpprocAbout);
 #endif
#endif
} /* UdDisplayAbout */

/***********************************************************************/
/* display privately-defined ABOUT box */

BOOL
WINAPI
UdPrivateAbout (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message) {

    case WM_INITDIALOG:
        WWCenterDialog( hDlg );

		// DV - porting to FS2000
        //SetDlgItemText(hDlg, CI_VERSION, GetString(STRUSER+0));
        SetFocus(GetDlgItem(hDlg, IDOK));

        return FALSE;

    case WM_COMMAND:
        EndDialog(hDlg, TRUE);
        return TRUE;

    default:
        return FALSE;
    }
} /* UdPrivateAbout */

/***********************************************************************/
/* this routine is here to supercede one in the toolkit */

BOOL WINAPI ProcessDlgMessages(LPMSG);

BOOL
WINAPI
ProcessDlgMessages (LPMSG lpMsg)
{
    return (FALSE);
} /* ProcessDlgMessages */

/***********************************************************************/
/** The following cures a Microsoft C7 linking anomaly, do not remove.
    Otherwise, you will get a message indicating no main procedure. **/

int PASCAL WinMain(HANDLE, HANDLE, LPSTR, int);
int (PASCAL *zzyzx)(HANDLE, HANDLE, LPSTR, int) = WinMain;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲大片在线观看| 久久九九久精品国产免费直播| 欧美三级中文字幕在线观看| 在线不卡欧美精品一区二区三区| 欧美精品第1页| 欧美激情综合五月色丁香小说| 亚洲天天做日日做天天谢日日欢| 午夜久久久久久| 国产成人8x视频一区二区| 在线视频一区二区三区| 在线亚洲人成电影网站色www| 91精品免费在线| 国产精品久久网站| 亚洲成a人在线观看| 成人免费视频网站在线观看| 3atv在线一区二区三区| 久久久亚洲国产美女国产盗摄| 亚洲精品国产成人久久av盗摄| 久久精品国产一区二区三 | 国产 欧美在线| 91影院在线观看| 久久免费视频一区| 久久国产婷婷国产香蕉| 日韩欧美一二三四区| 天天操天天干天天综合网| 欧美在线观看你懂的| 一级中文字幕一区二区| 国产91丝袜在线观看| 久久久久久久久一| 国产乱码一区二区三区| 精品久久久影院| 精油按摩中文字幕久久| 久久色.com| 国产成人精品综合在线观看| 国产欧美一区二区精品性| 国产福利精品导航| 国产精品久久久久婷婷| av一本久道久久综合久久鬼色| 国产精品麻豆欧美日韩ww| 不卡av免费在线观看| 中文字幕日本不卡| 色先锋资源久久综合| 亚洲女同ⅹxx女同tv| 欧美午夜精品久久久久久孕妇| 亚洲综合激情网| 91精品国产色综合久久ai换脸| 琪琪久久久久日韩精品| 久久理论电影网| jizz一区二区| 亚洲一区二区视频在线观看| 91麻豆精品国产自产在线| 久久国产精品99久久久久久老狼| 精品欧美黑人一区二区三区| 国产91精品精华液一区二区三区| 国产精品久久久久久久第一福利| 在线免费一区三区| 青青草成人在线观看| 久久蜜桃一区二区| 色婷婷狠狠综合| 久久综合综合久久综合| 日本一区二区高清| 欧美亚洲综合另类| 国内精品国产三级国产a久久| 国产精品天干天干在观线| 欧美三级蜜桃2在线观看| 久久超碰97中文字幕| 综合精品久久久| 日韩网站在线看片你懂的| 国产福利一区二区三区视频在线| 亚洲男女一区二区三区| 日韩欧美区一区二| 日本精品一区二区三区四区的功能| 丝袜美腿亚洲色图| 中文字幕欧美一区| 欧美成人精品3d动漫h| 97久久精品人人澡人人爽| 免费高清不卡av| 亚洲免费av网站| 久久免费电影网| 欧美久久免费观看| 成人av网址在线| 奇米777欧美一区二区| 中文字幕佐山爱一区二区免费| 日韩手机在线导航| 91久久精品一区二区三区| 国产成人午夜99999| 日韩精品视频网站| 一区二区三区四区蜜桃| 国产午夜三级一区二区三| 91精品黄色片免费大全| 色88888久久久久久影院野外| 国产一区二区三区电影在线观看 | 色综合久久久久综合体| 国产一区二区三区国产| 免费久久99精品国产| 亚洲精品成人悠悠色影视| 久久久国产精华| 日韩三级视频在线看| 欧美午夜电影网| jiyouzz国产精品久久| 国产不卡免费视频| 国产美女娇喘av呻吟久久| 人妖欧美一区二区| 日韩主播视频在线| 亚洲成人av免费| 亚洲影院久久精品| 亚洲综合一区二区| 亚洲一区二区3| 亚洲一卡二卡三卡四卡五卡| 亚洲另类一区二区| 亚洲另类春色国产| 一区二区三区在线视频观看| 亚洲区小说区图片区qvod| 中文字幕一区二区三区不卡| 亚洲国产精品ⅴa在线观看| 26uuu精品一区二区| 久久综合久久久久88| 久久综合久久鬼色中文字| 久久综合久久综合久久综合| 国产午夜一区二区三区| 国产欧美日产一区| 亚洲欧洲av色图| 一区二区三区在线视频观看| 亚洲午夜精品网| 日本中文一区二区三区| 蜜桃精品在线观看| 国产精品18久久久久久vr| 国产精品99久久久| 成人国产精品免费| 欧洲色大大久久| 日韩一区二区三区在线视频| 精品国产sm最大网站| 亚洲国产精品成人综合| 亚洲免费观看高清完整版在线| 亚洲一线二线三线视频| 午夜精品久久久久久久99樱桃| 麻豆精品蜜桃视频网站| 国产福利一区二区三区| 99热99精品| 欧美系列日韩一区| 精品免费一区二区三区| 亚洲国产精品激情在线观看| 尤物视频一区二区| 天堂久久久久va久久久久| 极品美女销魂一区二区三区免费| 在线观看一区二区精品视频| 亚洲精品一区在线观看| 久久天堂av综合合色蜜桃网| 中文字幕久久午夜不卡| 亚洲综合久久av| 精品一区二区免费| aaa欧美色吧激情视频| 精品在线一区二区三区| 欧美日韩中文另类| 一区二区三区四区在线播放| 成人h版在线观看| 久久精品在线观看| 国内一区二区在线| 欧美变态口味重另类| 免费成人av在线| 91精品久久久久久蜜臀| 肉色丝袜一区二区| 777久久久精品| 亚洲一区二区三区三| 欧美在线一二三四区| 亚洲天堂中文字幕| 91社区在线播放| 亚洲欧美电影院| 在线看国产日韩| 亚洲国产乱码最新视频| 欧美伊人久久久久久久久影院| 亚洲一区二区美女| 欧美日韩不卡一区| 日韩福利电影在线观看| 91精品国产91久久久久久最新毛片 | 香蕉成人伊视频在线观看| 欧美亚洲免费在线一区| 亚洲大片精品永久免费| 欧美亚洲综合色| 亚洲国产精品久久久久秋霞影院| 欧美性大战久久久| 免费在线欧美视频| 精品播放一区二区| 国产凹凸在线观看一区二区| 国产精品久久毛片av大全日韩| 91麻豆福利精品推荐| 亚洲自拍偷拍九九九| 欧美男男青年gay1069videost| 日韩二区在线观看| 久久久精品人体av艺术| 成人性生交大合| 亚洲自拍偷拍图区| 欧美一级搡bbbb搡bbbb| 国产一区二区三区久久悠悠色av | 欧美一级在线观看| 国产精华液一区二区三区| 亚洲免费三区一区二区| 538在线一区二区精品国产| 国产精品综合二区| 亚洲乱码国产乱码精品精的特点|