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

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

?? mylib.h

?? 一個modbus的編程庫
?? H
字號:
///////////////////////////////////////////////////////////////////////
//
// Mylib.h
//
// Author : Conrad Braam
// This lib is a collection of usefull classes, mostly graphical in nature
//
// Credits CStaticLink - Paul Di Lascia
//         Ado classes - Carlos Antollini
//
//
///////////////////////////////////////////////////////////////////////

#ifndef __AFXMT_H__
   // include multithreaded MFC headder for Thread class
	#include <afxmt.h>

   //#error Must include <afxmt.h> Multithreaded classes.
#endif


#ifndef __MYLIB_H__
#define __MYLIB_H__

#include "ado.h"
#include "statlink.h"
#include "colorstatic.h"

#define SUCCESS                     0

#ifdef FAILED
   #undef FAILED
#endif
#define FAILED                   -1

#define MAX_VALUE_NAME           256
#define MAX_PORT_NAME            256

// dialog-box constants
#define PORT_INUSESTR      " *"     // appended to LB for used comm ports

LONG CalcLRC(BYTE * lrcBuffPtr,    //  -> pointer to buffer at start of LRC
             DWORD  buffLen,       //  ->
             BOOL   calc2Comp,     //  -> Calculate 2's Complement also (last call)
             BYTE * lrc            // <->
            );

LONG SwopWords(DWORD * x);
LONG SwopBytes(WORD * x);
LONG SwopDWords(DWORD * x);
double Round(double val);

#define MAX_ERROR_STR_LEN     256




/////////////////////////////////////////////////////////////////////////////
// Registry access class
//

class DRegKey : public CObject
{
   public:
      // default constructor & destructor
      DRegKey()
         { Init(); };
      ~DRegKey()
         { Close(); };
   
      // alternate constructor
      DRegKey(HKEY hKey, LPCTSTR keyName = NULL, REGSAM regSam= KEY_ALL_ACCESS);

      // operations
      LONG Open(HKEY hKey, LPCTSTR keyName = NULL, REGSAM regSam= KEY_ALL_ACCESS);
      LONG Close();
      void Attach(HKEY key)
         { m_hKey = key; };
      HKEY Detach()
         { HKEY temp = m_hKey; m_hKey = NULL; return(temp);};
      operator HKEY() const;

      // the functions below return the win32 result codes: TRUE/FALSE
      // get value methods
      LONG QueryValue(LPCTSTR valueName , DWORD *dwValue);                 // DWORD values
      LONG QueryValue(LPCTSTR valueName , BYTE *bValue);                   // BYTE values
      LONG QueryValue(LPCTSTR valueName , LONG *lValue);                   // LONG values
      LONG QueryValue(LPCTSTR valueName , LPSTR szValue, DWORD *pLength);  // char buffers
      LONG QueryValue(LPCTSTR valueName , CString& szValue);               // CString
      LONG QueryBinValue(LPCTSTR valueName , BYTE* binData, DWORD *pLength);// RAW BYTE buffer
      // set value methods
      LONG SetBinValue(LPCTSTR valueName , BYTE* binData, DWORD length);
      LONG SetValue(LPCTSTR valueName , DWORD dwValue);
      LONG SetValue(LPCTSTR valueName , LPCTSTR szValue, DWORD length);
      LONG SetValue(LPCTSTR valueName , const BYTE* binData, DWORD length);
      LONG SetValue(LPCTSTR valueName , CString& stringCString) {const char *pS = stringCString;LONG ret=SetValue(valueName,(const char*)pS, stringCString.GetLength());return(ret);};
      // Reg. management functions
      LONG DeleteValue(LPCTSTR valueName);
      LONG DeleteKey(LPCTSTR keyName = NULL);
      LONG DeleteKeyRecurse(LPCTSTR keyName = NULL);

      LONG EnumKey(CStringArray &csaKeyNames);          // populate a CStringarray with key names
      LONG EnumKey(DWORD index, CString &valueName);         // return the key name at an index
      LONG EnumKey(DWORD index, LPSTR string, DWORD maxSize);// ditto
   private:
      void Init()
      {  m_hKey = NULL; m_baseKey = NULL;};

   public:
      HKEY  m_hKey;

      static HKEY local_machine;   // = HKEY_LOCAL_MACHINE;
      static HKEY current_user;    // = HKEY_CURRENT_USER;

   private:
      LONG result;
      HKEY  m_baseKey;
      CString m_KeyName;
}; // class DRegKey

////////////////////////////////////////////////////////////////////////////////
// Dialog window resizing class
// see CPP file for more

#define IDC_MAIN 0   //Parent dialog ID to be relative window

class CResizer  
{
public:
  enum EBorder{
    eFixed = 1,  //Given distance to specified window side
    eProportional, //Coordinate is changed proportionally to width/height of specified window
    eWidth,   //The width is preserved (relative window and window side are ignored)
    eHeight,  //The height is preserved (relative window and window side are ignored)
  };
  enum ESize{
    eLeft = 1,  //Relative to left side
    eTop,       //Top
    eRight,     //Right
    eBottom,    //Bottom
    eXCenter,   //The center of width
    eYCenter    //The center of height
  };
  struct CBorder{
    EBorder eType;  //Type of relation to relative control side
    int nRelID;     //Relative control
    ESize eRelType; //Side of relative control
  };
  struct CBorderInfo{
    int nID;         //Control ID
    CBorder left;    
    CBorder top;
    CBorder right;
    CBorder bottom;
  };
private:
  struct CControlInfo{
    RECT rcInitial; //initial control position;
    const CBorderInfo *pInfo;
  };
  struct CRectInfo{
    int nID;       //Control ID
    RECT rc;      //New control rect
    bool bVisible; //If control is visible
    bool bHide;    //If control should be hidden because it overlaps senior control
  };
  HWND m_wndParent;
  RECT m_rcInitial; //Initial window client area
  typedef CControlInfo * TInfo;
  typedef CRectInfo * TRectInfo;
  TInfo m_vInfo;
  int m_nSize; //Size of m_vInfo array
  mutable TRectInfo m_vRectInfo;
  mutable int m_nCachedSize; //Size of m_vRectInfo
protected:
  HWND GetDlgItem(int nID) const{return ::GetDlgItem(m_wndParent, nID);}
  void GetDlgItemRect(int nID, RECT &rc) const;
  void GetCachedDlgItemRect(int nID, RECT &rc) const;
  void GetInitialDlgItemRect(int nID, RECT &rc) const;
  void Move(int nIndex) const;
  int GetCoordinate(ESize eType, const RECT &rcInitial, const CBorder &border, const RECT &rc) const;
  static int GetRectCoord(ESize eType, const RECT &rc);
  static int GetRectSize(ESize eType, const RECT &rc);
  int GetRelativeCoord(const CBorder &border) const;
  int Find(int nID) const;
  int FindCached(int nID) const;
  void MoveAndHideOverlapped() const;
  void Clear();
public:
  //Initializes resizer
  bool Init(HWND hWndParent, LPCRECT rcInitial, const CBorderInfo *pBorders, int nSize);
  //Performs moving of controls
  void Move() const;
  //Just constructor
  CResizer();
  //Just destructor
  ~CResizer();
};

/////////////////////////////////////////////////////////////////////////////
// The CDragSizerBmp class implements a bitmap subclassed from a static.
// A mouse-down over the bitmap is used to capture the mouse and then size the 
// parent window, like a window "drag" bar, which posts WM_SIZE to the parent
// untill the mouse is released to another window gains focus.

class CDragSizerBmp : public CWnd
{
// Construction
public:
	CDragSizerBmp();

   BOOL SetBitmapID(int resourceId);

   // mouse cursor type and window corner type specified:
   enum _CursorCornerType
   {
      CORNER_BOTTOMRIGHT   = 0,  // 0=default : IDC_SIZENWSE
      CORNER_BOTTOMLEFT,         // 1=IDC_SIZENESW
      CORNER_TOPRIGHT,           // 2=IDC_SIZENESW
      CORNER_TOPLEFT             // 3=IDC_SIZENESW
   };
   
   BOOL SetCornerType(_CursorCornerType corner, int resourceId, BOOL shiftControl = TRUE);
// Attributes
public:

private:
   CBitmap m_bitMap;
   BOOL    m_buttonDown;
   CPoint  m_downPosition;
   _CursorCornerType m_cornerType;

   virtual void PreSubclassWindow();
   // Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CDragSizerBmp)
	//}}AFX_VIRTUAL

// Implementation
public:
	virtual ~CDragSizerBmp();

	// Generated message map functions
protected:
   void DrawTrans(HDC hDC, int x, int y);
   void DrawTrans(CDC* pDC, int x, int y);
   int GetWidth();
   int GetHeight();

   int m_iWidth;
   int m_iHeight;
   HBITMAP m_hbmMask;    // handle to mask bitmap

   void GetMetrics();
   void CreateMask(HDC hDC);

   DECLARE_DYNAMIC(CDragSizerBmp)
	//{{AFX_MSG(CDragSizerBmp)
	afx_msg void OnPaint();
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};


#endif __MYLIB_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线综合| 久久不见久久见免费视频7| 欧美电影免费观看完整版| 欧美视频一区二区三区四区| av不卡在线观看| 成人夜色视频网站在线观看| 国产精一品亚洲二区在线视频| 国产一区二区三区最好精华液| 国产在线不卡一区| 风流少妇一区二区| av电影在线观看完整版一区二区| av综合在线播放| 91视频一区二区| 欧美色国产精品| 555www色欧美视频| 亚洲精品一区二区精华| 久久久不卡网国产精品一区| 亚洲国产高清在线观看视频| 国产精品久久久久久福利一牛影视| 中文字幕亚洲区| 亚洲一区免费在线观看| 久久精品国产免费看久久精品| 久久国产精品99久久久久久老狼| 韩国av一区二区| 99久久精品一区| 欧美做爰猛烈大尺度电影无法无天| 欧美一a一片一级一片| 日韩欧美国产综合| 国产精品日产欧美久久久久| 一区二区高清视频在线观看| 日本成人中文字幕| 国产iv一区二区三区| 91黄色免费网站| 精品av综合导航| 综合色天天鬼久久鬼色| 日本免费新一区视频| 国产传媒久久文化传媒| 欧美视频一区二区在线观看| 久久精品欧美日韩精品| 亚洲午夜精品在线| 国产91综合一区在线观看| 欧美日韩国产一区| 欧美国产日产图区| 日韩成人一区二区| av亚洲精华国产精华| 日韩免费一区二区三区在线播放| 成人欧美一区二区三区黑人麻豆 | 日韩精品亚洲专区| 国产成人av电影在线| 欧美男人的天堂一二区| 国产农村妇女精品| 日本不卡中文字幕| 在线亚洲免费视频| 国产精品久久久久久妇女6080| 琪琪一区二区三区| 欧美曰成人黄网| 国产精品久久看| 国产传媒欧美日韩成人| 日韩精品一区二区在线观看| 亚洲一区二区美女| 91福利精品第一导航| 国产精品二三区| 国产成人在线电影| 久久这里只有精品首页| 美女诱惑一区二区| 777色狠狠一区二区三区| 亚洲欧美日韩成人高清在线一区| 国产精品一品视频| www久久精品| 久久er99热精品一区二区| 欧美一级欧美一级在线播放| 亚洲国产综合91精品麻豆| 日本高清免费不卡视频| 亚洲免费av高清| 色天使色偷偷av一区二区| 欧美国产欧美综合| 国产99久久久久久免费看农村| 欧美成人乱码一区二区三区| 看国产成人h片视频| 日韩欧美国产综合一区 | 欧美日韩一区二区在线观看| 综合网在线视频| 91日韩一区二区三区| 伊人婷婷欧美激情| 日本高清无吗v一区| 亚洲va欧美va天堂v国产综合| 91久久精品网| 亚洲影视在线观看| 制服视频三区第一页精品| 日韩中文欧美在线| 精品国产乱码久久久久久蜜臀| 精品一区二区三区在线观看| 久久久蜜桃精品| 成人动漫一区二区在线| 亚洲欧洲综合另类| 欧美久久久久久蜜桃| 美国欧美日韩国产在线播放 | 美女网站色91| 久久久精品蜜桃| 99精品视频在线观看免费| 亚洲最新在线观看| 日韩精品一区二区三区中文不卡| 国精产品一区一区三区mba视频| 国产精品你懂的在线欣赏| 日本大香伊一区二区三区| 美国毛片一区二区三区| 日本一区二区免费在线 | 午夜精品久久久久久久久久| 日韩一区二区精品葵司在线| 国产成人在线影院 | 欧美日本韩国一区二区三区视频| 日产国产欧美视频一区精品| 亚洲国产精品二十页| 欧美一区二区网站| 99久久99久久精品免费看蜜桃| 香蕉久久夜色精品国产使用方法 | 色综合天天狠狠| 日韩av一二三| 亚洲精品日韩一| www激情久久| 欧美日韩国产高清一区二区| 国产黄色成人av| 视频在线观看91| 亚洲少妇30p| 久久久亚洲国产美女国产盗摄 | 9l国产精品久久久久麻豆| 日韩精品一卡二卡三卡四卡无卡| 国产精品久久三| 精品国产乱码久久久久久闺蜜| 在线免费不卡视频| 成人免费视频caoporn| 青娱乐精品视频| 一区二区三区美女视频| 欧美激情在线看| 精品免费国产一区二区三区四区| 在线观看一区日韩| 成人福利视频网站| 国产一区视频网站| 老司机免费视频一区二区三区| 亚洲国产毛片aaaaa无费看| 国产精品大尺度| 久久女同性恋中文字幕| 欧美一卡2卡三卡4卡5免费| 欧美日韩综合在线免费观看| 91在线高清观看| 成人三级伦理片| 丁香激情综合国产| 国产乱人伦精品一区二区在线观看| 丝袜诱惑亚洲看片| 亚洲无线码一区二区三区| 亚洲欧美偷拍卡通变态| 成人欧美一区二区三区白人| 国产精品久久久久久久久免费樱桃| 国产亚洲一二三区| 日本一区二区视频在线观看| 国产情人综合久久777777| 国产日韩综合av| 中文字幕av一区二区三区| 国产精品你懂的在线欣赏| 国产欧美一区二区在线| 国产精品久久久久久久久图文区| 久久久99久久| 中文字幕国产精品一区二区| 国产亚洲精品aa| 中文字幕亚洲综合久久菠萝蜜| 国产精品成人免费精品自在线观看| 国产精品美日韩| 一区二区三区不卡视频在线观看| 洋洋成人永久网站入口| 亚洲成人tv网| 久久99国产精品免费网站| 国产精品99久| 91黄色免费版| 日韩欧美中文字幕精品| 久久亚洲一区二区三区四区| 国产精品午夜春色av| 一区二区在线免费观看| 日韩精品每日更新| 国产一区二区三区观看| 91尤物视频在线观看| 在线不卡a资源高清| 日韩欧美高清dvd碟片| 国产欧美一区二区精品秋霞影院| 日韩理论在线观看| 青青草91视频| 成人毛片老司机大片| 欧美日韩午夜影院| 日本一区二区免费在线观看视频| 亚洲色欲色欲www| 久久精品国产久精国产| 成人黄色a**站在线观看| 欧美日韩成人综合| 欧美—级在线免费片| 国产乱码精品一区二区三区五月婷| 成人性生交大片免费看在线播放 | 香蕉影视欧美成人| 国产成人精品免费在线| 欧美裸体一区二区三区| 中文字幕电影一区| 免费精品视频最新在线|