//將Big5的字轉至Unicode
 wchar_t* wszUnicode=NULL; //Unicode編碼的字元
 int iLen=MultiByteToWideChar (CP_ACP, 0,"標楷體", -1, NULL,0) ;
 wszUnicode=new wchar_t[iLen+1];
 MultiByteToWideChar (CP_ACP, 0,"標楷體", -1, wszUnicode,iLen);


pipii 發表在 痞客邦 留言(0) 人氣()

RegisterDeviceNotification
先用這個Enable Device Plug In Event

然後當裝置插入時(USB或其他種類皆可)
就會收到WM_DEVICECHANGE這個Message

在MFC就是ON_WM_DEVICECHANGE
此Message還有許多細項(MSDN有介紹)。

程式結束前要執行
UnregisterDeviceNotification


pipii 發表在 痞客邦 留言(0) 人氣()

以下是自製Source Code參考

CString WidthString,HeightString;
m_Width.GetWindowText(WidthString);
m_Height.GetWindowText(HeightString);
int Width,Height;

Width = atoi((const char*)WidthString);
Height = atoi((const char*)HeightString);

int Pixel=Height;
HDC hSrc;     //screen DC
HDC hMemDC;
 
HBITMAP hBitmap,hOldBitmap; 
HFONT hFont,hOldFont;

hSrc = ::GetDC(this->m_hWnd); //Get視窗的Client Area Dc
hMemDC  = CreateCompatibleDC(hSrc);
hBitmap = CreateCompatibleBitmap(hSrc ,Pixel,Pixel);
hOldBitmap = (HBITMAP)SelectObject(hMemDC,hBitmap);

//hFont = CreateFont(-(int)(fabs(250*GetDeviceCaps(hSrc,LOGPIXELSY)/72)/10.0+0.5),0,0,0,500,FALSE,FALSE,FALSE,0,0,0,0,0,"標楷體");
hFont = CreateFont(Pixel,0,0,0,500,FALSE,FALSE,FALSE,0,0,0,0,0,"標楷體");
hOldFont=(HFONT)SelectObject(hMemDC,hFont);
CString WordString;
m_WordEditString.GetWindowText(WordString);
TextOut(hMemDC,0,0,WordString,2);

BitBlt(hSrc,0,0,                // destination (x,y)           

pipii 發表在 痞客邦 留言(0) 人氣()

抓Google Video跟Youtube影音檔的工具

http://blog.kej.tw/category/programming/



pipii 發表在 痞客邦 留言(0) 人氣()

目前的軔體架構:
Setup-Out-In
1.你利用SetOutReport寫資料到裝置之後,Out-Token時裝置將資料讀取進來。接下來PC會送In-Token,然後以目前的軔體程式,裝置不管Out-Token時的資料有沒有處理完,當PC送In-Token,裝置會馬上回Hand-Shake。
2.此時若AP寫一個FOR廻圈連續寫入時(比如二次),然後裝置也會確定收到這兩筆,但是由於PC詢問裝置有沒有資料要傳送的速度太慢,所以當AP己經連送兩次時(HandShake已回),但裝置尚未回覆(因為PC尚未問你有沒有資料要送,你也沒法子送)。此時,你在AP一邊寫入,另一條執行緒讀取時,你有時會發現只收到一次資料。這端看你AP以及軔體要如何搭配使用,可以改軔體,或AP利用Delay機制。


pipii 發表在 痞客邦 留言(0) 人氣()