DLL- (dynamic-link libraries) DLL, Borland C++ Builder Windows 98, 2000 XP NT.
, . .
ANSI DLL-, ( ).
RTF- DLL-, DLL ( ).
7:
:
1. Borland C++ Builder. DLL, File|New. New DLL. D:/VMSS/U41(U42)/<user_s>, File|Save Project As. , <user_s> .
2. , File|New Unit. D:/VMSS/U41(U42)/<unit_s>, File|Save As. <unit_s> .
3. <unit_s> ANSI. .
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "MainLab2s.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) void ConvertTxt(char *buf)
// ANSI
{
//
OemToChar(buf,buf);
}
4. <unit_s>.h . .
//---------------------------------------------------------------------------
#ifndef MainLab2sH
#define MainLab2sH
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) void ConvertTxt(char *buf);
#endif
5. Project|Options Advanced Compiler Calling Convention Standart Call.
6. . - <user_s>.dll (DLL-) <user_s>.lib (, DLL).
7. .
8. " ANSI" API ANSI- DLL-. .
|
|
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
// ANSI
{
char *txt;
txt = new char [RichEdit1->Lines->Text.Length()];
//
strcpy(txt,RichEdit1->Lines->Text.c_str());
//
// DLL
ConvertTxt(txt);
// MEMO
RichEdit1->Lines->Text=(AnsiString)txt;
delete txt;
}
//---------------------------------------------------------------------------
9. <unit>.hpp . .
//---------------------------------------------------------------------------
// DLL
extern "C" __declspec(dllimport) void ConvertTxt(char *buf);
10. LIB- DLL-. Project|Add to Project Add to Project. Library file (*.lib). <user_s>.lib "".
11. . .
12. DLL- :
DLL-;
Run Parameters. Host application Browse -, DLL. Run Parameters DLL (ConvertTxt);
ConvertTxt();
Run. -, " ANSI" DLL ;
DLL- , -.
13. DLL, File|New. New DLL. D:/VMSS/U41(U42)/<user_d>, File|Project As. , <user_d> .
14. , File|New Unit. D:/VMSS/U41(U42)/<unit_d>, File|Save As. <unit_d> .
15. <unit_d> RTF-. 123.rtf. . .
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) int SearchConRTF(void)
// RTF
{
char *ptr, *buf, str[64], FileName[16]="123.rtf";
int count=0, handle;
handle = open(FileName, O_BINARY|O_RDWR);
if(handle == -1)
return -1;
buf = new char [2*filelength(handle)];
memset(buf, 0, 2*filelength(handle));
read(handle, str, 64);
read(handle, buf, filelength(handle)-64);
close(handle);
|
|
ptr=strstr(buf,str);
//
while(ptr!= NULL)
{
count++; //
RtfIns((int)(ptr-buf),buf,TXTCOLOR); //
RtfIns((int)(ptr-buf)+strlen(str)+sizeof(TXTCOLOR)-1,buf,TXTNOCOLOR); //
ptr=ptr+strlen(str)+sizeof(TXTCOLOR)+sizeof(TXTNOCOLOR); //
ptr=strstr(ptr,str);
}
//
ptr=strstr(buf,TXTCR);
while(ptr!= NULL)
{//
RtfDel((int)(ptr-buf),buf,sizeof(TXTCR));
RtfIns((int)(ptr-buf),buf,TXTPAR);
ptr=strstr(buf,TXTCR);
}
RtfIns(0,buf,TXTSTART); // RTF
RtfIns(sizeof(TXTSTART)-1,buf,TXTNOCOLOR); //
strcat(buf,TXTEND); // RTF
strcat(buf,"\0\0\0"); //
handle = open(FileName, O_CREAT|O_TRUNC|O_BINARY|O_RDWR);
if(handle == -1)
return -1;
write(handle, buf, strlen(buf));
close(handle);
delete buf;
return count;
}
16. RtfIns(),RtfDel() - DLL-. RTF- - DLL-.
17. <unit_d>.h . .
//---------------------------------------------------------------------------
#ifndef MainLab2dH
#define MainLab2dH
#include <string.h>
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
// RTF
#define TXTCOLOR "\\plain\\fs20\\cf1 " //
#define TXTNOCOLOR "\\plain\\fs20 " //
#define TXTSTART "{\\rtf1\\ansi\\deff0\\deftab720{\\fonttbl{\\f0\\fmodern Courier}}\r\n{\\colortbl\\red0\\green0\\blue0;\\red255\\green0\\blue0;}\r\n"
//
#define TXTEND "}\\par" //
#define TXTPAR "\\par " //
#define TXTCR "\r\n" //
//---------------------------------------------------------------------------
extern "C" __declspec(dllexport) int SearchConRTF(void);
void __fastcall RtfDel(int n, char *txtbuf, int size);
void __fastcall RtfIns(int n, char *txtbuf, char *str);
#endif
18. Project|Options Advanced Compiler Calling Convention Standart Call.
19. . - <user_d>.dll (DLL-) <user_d>.lib (, DLL).
20. -. RtfIns(),RtfDel() RTF-.
21. "" DLL-. .
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
// RTF
{
char *buf;
char str[64];
int count=0;
char FileName[16]="123.rtf";
int handle;
typedef int (__fastcall *DLLPROC)(void);
HANDLE hLib;
buf = new char [2*RichEdit1->Lines->Text.Length()];
memset(buf, 0, 2*RichEdit1->Lines->Text.Length()- 1);
//
strcpy(buf,RichEdit1->Lines->Text.c_str());
strcpy(str,Edit1->Text.c_str()); //
//
handle = open(FileName, O_CREAT|O_TRUNC|O_BINARY|O_RDWR);
if(handle!= -1)
{
write(handle, str, 64);
write(handle, buf, strlen(buf));
}
close(handle);
hLib=GetModuleHandle(DLL_LAB2); //
if(hLib==NULL)
hLib=LoadLibrary(DLL_LAB2);// DLL
DLLPROC DinProc=(DLLPROC)GetProcAddress(hLib,"SearchConRTF");
if (DinProc!= NULL)
count=DinProc();// DLL
(void)FreeLibrary(hLib);
Edit2->Text=IntToStr(count); //
|
|
RichEdit1->Lines->LoadFromFile(FileName);
//
delete buf;
}
//---------------------------------------------------------------------------
22. <unit>.hpp DLL-. .
#define DLL_LAB2 "Lab2d.dll" //
23. . .
24. DLL- .12.
:
1. DLL- .
2. - DLL-?
3. DLL- - .
4. DLL- - Clipboard [3].
5. Ansi , .
6. ( ).
:
:
;
;
DLL- ;
;
DLL-;
.
. . , , .
8 8. ACTIVEX/OCX
ActiveX ActiveX .
, - 8- . 512 .
ChartFX
ChartFX ActiveX.
Properties , . , ChartFX :
;
;
;
, (, , , , ..);
.
ChartFX Ctrl+F1 ( :\\Borland\Cbuilder5\OCX\CHARTFX\cfx2ocx.hlp).
8
:
7. Borland C++ Builder. , File|New Application. D:/VMSS/U41(U42)/<user>, File| Save Project As. <user>, .
8. . 8.1. . .
|
|
8.1 - |
9. ChartFX. . :
//
Chartfx1->PointType=0;
Chartfx2->PointType=0;
Chartfx1->OpenDataEx(COD_VALUES,1,512);
Chartfx1->ThisSerie = 0;
for(i=0;i<512;i++)
Chartfx1->Value[i]=0.00;
Chartfx1->CloseData(COD_VALUES);
Chartfx1->Adm[CSA_MAX]=1;
Chartfx1->Adm[CSA_MIN]=-1;
Chartfx2->OpenDataEx(COD_VALUES,1,256);
Chartfx2->ThisSerie = 0;
for(i=0;i<256;i++)
Chartfx2->Value[i]=10;
Chartfx2->CloseData(COD_VALUES);
Chartfx2->Adm[CSA_MAX]=12;
10. :
char data[64000]; //
unsigned long byteRead;// ( )
int Sm;//
float data_adc[512]; //
float data_sp[256]; //
float data_sp2; // max
11. . . OpenDialog. Filter FilterIndex . . Execute . ʻ data. :
//
if(OpenDialog1->Execute()==true)
{ //
// Win32
HANDLE in=CreateFile(OpenDialog1->FileName.c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, NULL);
if(in == INVALID_HANDLE_VALUE) return;
memset(data, 0, 64000 - 1);
//
if(!ReadFile(in, (void*)&data, 64000l, &byteRead,NULL))
{ // :
CloseHandle(in); return;
}
CloseHandle(in);
}
12. .
13. . .
//*********************************************
//
//*********************************************
void __fastcall TForm1::fourea(float *data_r,float *data_i,int n,int is)
{
int i,i1,j,j1,istep;
int m,mmax;
float r,r1,theta,w_r,w_i,temp_r,temp_i;
r=M_PI*is;
j=1;
for(i=1;i<=n;i++)
{
i1=i-1;
if(i<j)
{
j1=j-1;
temp_r=*(data_r+j1);
temp_i=*(data_i+j1);
*(data_r+j1)=*(data_r+i1);
*(data_i+j1)=*(data_i+i1);
*(data_r+i1)=temp_r;
*(data_i+i1)=temp_i;
}
m=n>>1;
while(j>m)
{
j-=m;
m=(m+1)>>1;
}
j+=m;
}
mmax=1;
while(mmax<n)
{
istep=mmax<<1;
r1=r/(float)mmax;
for(m=1;m<=mmax;m++)
{
theta=r1*(m-1);
w_r=(float)cos((double)theta);
w_i=(float)sin((double)theta);
for(i=m-1;i<n;i+=istep)
{
j=i+mmax;
temp_r=w_r* *(data_r+j) - w_i* *(data_i+j);
temp_i=w_r* *(data_i+j) + *(data_r+j)*w_i;
*(data_r+j)=*(data_r+i) - temp_r;
*(data_i+j)=*(data_i+i) - temp_i;
*(data_r+i) += temp_r;
*(data_i+i) += temp_i;
}
}
mmax=istep;
}
if(is>0)
for(i=0;i<n;i++)
{
*(data_r+i) /= (float)n;;
*(data_i+i) /= (float)n;;
}
}
//--------------------------------------------------------------
14. , . data SM. .
//--------------------------------------------------------------
void __fastcall TForm1::OutData(int start)
// start
{
int i,j;
float d_r[512],d_i[512];
//
//
for(i=start,j=0;j<512;i++,j++)
{
data_adc[j]=(float)data[i]*(float)(2.5/256);
d_r[j]=data_adc[j]; // =
d_i[j]=0.0; // = 0
}
//
fourea(d_r,d_i,512,-1);
//
data_sp2=0.;
data_sp[0]=0;
for(i=1;i<256;i++)
{ //
data_sp[i]=d_r[i]*d_r[i]+d_i[i]*d_i[i];
if(data_sp2<data_sp[i])
data_sp2=data_sp[i]; // max
}
//
|
|
Chartfx1->OpenDataEx(COD_VALUES,1,512);
Chartfx1->ThisSerie = 0;
for(i=0;i<512;i++)
Chartfx1->Value[i]=data_adc[i];
Chartfx1->CloseData(COD_VALUES);
//
Chartfx2->OpenDataEx(COD_VALUES,1,256);
Chartfx2->ThisSerie = 0;
for(i=0;i<256;i++)
Chartfx2->Value[i]=(int)data_sp[i];
Chartfx2->CloseData(COD_VALUES);
//
Chartfx2->Adm[CSA_MAX]=(int)data_sp2+10;
Chartfx2->LeftGap=0;
}
15. . .
16. . >>.
17. . <<.
18. , .
19. .
20. . 8.2 .
8.2 - |
:
1. .
2. .
3. ( 128).
4. , 20 .
5. .
6. .
7. ChartFX.
8. ( ).
9. .
10. ChartFX Graph ActiveX. .
:
:
;
;
;
;
.
. . , , .
WIN32 API
DWORD GetLogicalDrives(void)
32- , , , (0- - , 1- - B ..).
DWORD GetLogicalDriveStrings(dwBuffer, lpBuffer)
DWORD dwBuffer; //
LPTSTR lpBuffer; //
, . <null> . : "a:\\<null>", "c:\\<null>", "d:\\<null>"<null>.
, .
UINT GetDriveType(lpDiskName)
LPCTSTR lpDiskName; //
. unsigned int:
0 .
1 .
DRIVE_REMOVABLE .
DRIVE_FIXED .
DRIVE_REMOTE () .
DRIVE_CDROM (CD-ROM).
DRIVE_RAMDISK .
BOOL GetVolumeInformation(lpDiskName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize)
LPCTSTR lpDiskName;//
LPTSTR lpVolumeNameBuffer;//
DWORD nVolumeNameSize;//
LPDWORD lpVolumeSerialNumber;//
LPDWORD lpMaximumComponentLength;// ( )
LPDWORD lpFileSystemFlags;//
LPTSTR lpFileSystemNameBuffer;//
DWORD nFileSystemNameSize;//
true . , . , .
BOOL GetDiskFreeSpaceExA(lpDirectoryName, lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes);
LPCTSTR lpDirectoryName, //
PULARGE_INTEGER lpFreeBytesAvailableToCaller,// ,
PULARGE_INTEGER lpTotalNumberOfBytes,//
PULARGE_INTEGER lpTotalNumberOfFreeBytes // .
. true.
DWORD GetCurrentDirectory(dwCurDir, lpCurDir)
DWORD dwCurDir;//
LPTSTR lpCurDir;//
, , " " ( ). .
DWORD GetFullPathName(lpFile, dwPath, lpPath, ppFilePart)
LPCTSTR lpFile;//
DWORD dwPath;//
LPTSTR lpPath;// ( )
LPTSTR *ppFilePart;//
. .
DWORD GetFileAttributes(lpFileName)
LPCTSTR lpFileName;//
32- .
DWORD GetFileSize(hFile, lpdwFileSizeHigh)
HANDLE hFile;//
LPDWORD lpdwFileSizeHigh;// (32)
. HANDLE, , CreateFile ( CloseHandle). (32 64), , , (32 ). 0xFFFFFFFF, NULL.
HANDLE FindFirstFile(lpSearchFile, lpffd)
LPCTSTR lpSearchFile; //
LPWIN32_FIND_DATA lpffd; //
typedef struct _WIN32_FIND_DATA {
DWORD dwFileAttributes; //
FILETIME ftCreationTime; //
FILETIME ftLastAccessTime; //
FILETIME ftLastWriteTime; //
DWORD nFileSizeHigh; //
DWORD nFileSizeLow; //
DWORD dwReserved0; //
DWORD dwReserved1; // - // -
TCHAR cFileName[MAX_PATH]; //
TCHAR cAlternateFileName[14]; // 8.3
} WIN32_FIND_DATA;
. . .
BOOL FindNextFile(hFindFile, lpffd)
HANDLE hFindFile; //
LPWIN32_FIND_DATA lpffd; //
FindFirstFile. (true/false). .
UINT GetWindowsDirectory(lpBuffer, uSize)
LPTSTR lpBuffer,// Windows
UINT uSize //
Windows.
UINT GetSystemDirectory(lpBuffer, uSize)
LPTSTR lpBuffer,//
UINT uSize //
.
DWORD GetTempPath(nBufferLength, lpBuffer)
DWORD nBufferLength,//
LPTSTR lpBuffer //
, .
BOOL GetFileTime(hFile, lpCreationTime, lpLastAccessTime, lpLastWriteTime)
HANDLE hFile,//
LPFILETIME lpCreationTime,// FILETIME,
LPFILETIME lpLastAccessTime,// FILETIME,
LPFILETIME lpLastWriteTime // FILETIME, .
, , , .
LONG CompareFileTime(lpFileTime1, lpFileTime2)
CONST FILETIME *lpFileTime1,// FILETIME, 64-
CONST FILETIME *lpFileTime2 // FILETIME, 64-
64- .
BOOL SetVolumeLabel(lpRootPathName, lpVolumeName)
LPCTSTR lpRootPathName,// ,
LPCTSTR lpVolumeName,// ,
.
BOOL SetFileTime(hFile, lpCreationTime,lpLastAccessTime, lpLastWriteTime)
HANDLE hFile,//
CONST FILETIME *lpCreationTime,// FILETIME,
CONST FILETIME *lpLastAccessTime,// FILETIME,
CONST FILETIME *lpLastWriteTime// FILETIME,
, , , .
BOOL SetLocalTime(lpSystemTime);
CONST SYSTEMTIME *lpSystemTime // SYSTEMTIME,
.
BOOL CreateDirectory(lpPath, lpsa)
LPCTSTR lpPath; //
LPSECURITY_ATTRIBUTES lpsa; //
. true .
BOOL RemoveDirectory(lpDir)
LPCTSTR lpDir; //
, .
BOOL SetCurrentDirectory(lpCurDir)
LPCTSTR lpCurDir; //
.
BOOL SetFileAttributes(lpFileName, dwFileAttributes)
LPCTSTR lpFileName; //
DWORD dwFileAttributes; // 32-
. :
FILE_ATTRIBUTE_ARCHIVE
FILE_ATTRIBUTE_DIRECTORY
FILE_ATTRIBUTE_HIDDEN
FILE_ATTRIBUTE_NORMAL ( )
FILE_ATTRIBUTE_READONLY
FILE_ATTRIBUTE_SYSTEM
FILE_ATTRIBUTE_TEMPORARY .
HANDLE CreateFile(lpName, fdwAccess, fdwShareMode, lpsa, fdwCreate, fdwAttrsAndFlags, hTemplateFile)
LPCTSTR lpName; //
DWORD fdwAccess; //
DWORD fdwShareMode; //
LPSECURITY_ATTRIBUTES lpsa; //
DWORD fdwCreate; //
DWORD fdwAttrsAndFlags; //
HANDLE hTemplateFile; //
. .
lpName ( ) :
"COM1", "COM2" ..
"LPT1", "LPT2" ..
"PRN"
"\\servername\pipe\pipename".
fdwAccess :
0 ( );
GENERIC_READ ;
GENERIC_WRITE .
dwShareMode :
0 ;
FILE_SHARE_READ ;
FILE_SHARE_WRITE .
fdwCreate :
CREATE_NEW , ;
CREATE_ALWAYS ;
OPEN_EXISTING , ;
OPEN_ALWAYS ;
TRUNCATE_EXISTING .
fdwAttrsAndFlags :
FILE_ATIBUTE_ARCHIVE ( ) ;
FILE_ATRIBUTE_HIDDEN ( );
FILE_ATRIBUTE_NORMAL ( );
FILE_ATRIBUTE_READONLY ;
FILE_ATRIBUTE_SYSTEM ( );
FILE_ATRIBUTE_COMPRESSED ;
FILE_ATRIBUTE_OFFLINE , ;
FILE_ATRIBUTE_TEMPORARY ( , ).
BOOL ReadFile(hFile, lpBuffer, nNumberOfBytesToRead, lpNumberOfBytesRead, lpOverlapped)
HANDLE hFile; //
LPVOID lpBuffer; //
DWORD nNumberOfBytesToRead; // ,
LPDWORD lpNumberOfBytesRead; //
LPOVERLAPPED lpOverlapped; // Overlapped
CreateFile. true .
BOOL WriteFile(hFile, lpBuffer, nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped)
HANDLE hFile; //
LPCVOID lpBuffer; //
DWORD nNumberOfBytesToWrite; //
LPDWORD lpNumberOfBytesWritten; //
LPOVERLAPPED lpOverlapped; // Overlapped
CreateFile. true .
BOOL CopyFile(lpExistingFile, lpNewFile, fFailIfExists)
LPCTSTR lpExistingFile; //
LPCTSTR lpNewFile; //
BOOL fFailIfExists; // true - , (false - )
. true .
BOOL MoveFile(lpExisting, lpNew)
LPCTSTR lpExisting; //
LPCTSTR lpNew; //
/ . true .
BOOL DeleteFile(lpFileName)
LPCTSTR lpFileName; //
. true .
BOOL CloseHandle(hObject)
HANDLE hObject; //
CreateFile.
BOOL FindClose(hFindFile)
HANDLE hFindFile; //
FindFirstFile.
int GetKeyboardType(fnKeybInfo)
int fnKeybInfo; //
. : , . :
0 - ;
1 - ;
2 - .
BOOL GetKeyboardState(pbKeyState)
PBYTE pbKeyState; //
. 256 256 . , . "NumLock", "CapsLock" "ScrollLock" , , . true .
SHORT GetKeyState(nVirtKey)
int nVirtKey; //
GetKeyboardState, . , . "NumLock", "CapsLock" "ScrollLock" , .
SHORT GetAsyncKeyState(nVirtKey)
int nVirtKey; //
. , . , .
BOOL GetCursorPos(lpPoint)
LPPOINT lpPoint; // POINT
. true .
int GetSystemMetrics(nIndex)
int nIndex; //
. - Windows. Windows, , ..
UINT GetCaretBlinkTime(VOID)
(, ) .
BOOL SystemParametersInfo(wAction, wParam, lpvParam, fUpdateProfile)
UINT wAction; //
UINT wParam; //
PVOID lpvParam; //
UINT fUpdateProfile; //
.
:
SPI_GETBEEP BOOL .
wParam=0; lpvParam = BOOL;
SPI_SETBEEP BOOL .
wParam=BOOL; lpvParam=NULL;
SPI_GETBORDER .
wParam=0; lpvParam = int;
SPI_SETBORDER .
wParam=int; lpvParam=NULL;
SPI_GETFASTTASKSWITCH ./.
wParam=0; lpvParam = BOOL;
SPI_SETFASTTASKSWITCH ./.
wParam=BOOL; lpvParam=NULL;
SPI_GETGRIDGRANULARITY .
wParam=0; lpvParam = int;
SPI_SETGRIDGRANULARITY .
wParam=int; lpvParam=NULL;
SPI_GETKEYBOARDDELAY .
wParam=0; lpvParam = int;
SPI_SETKEYBOARDDELAY .
wParam=int; lpvParam=NULL;
SPI_GETKEYBOARDSPEED .
wParam=0; lpvParam = WORD;
SPI_SETKEYBOARDSPEED .
wParam=WORD; lpvParam=NULL;
SPI_GETMOUSE .
wParam=0; lpvParam = int, lpiMouse[0] - 1, lpiMouse[1] - 2, lpiMouse[2] - ;
SPI_SETMOUSE .
wParam=0; lpvParam = int, lpiMouse[0] - 1, lpiMouse[1] - 2, lpiMouse[2] - ;
SPI_GETSCREENSAVEACTIVE BOOL . wParam=0; lpvParam = BOOL;
SPI_SETSCREENSAVEACTIVE BOOL . wParam=BOOL; lpvParam=NULL;
SPI_GETSCREENSAVETIMEOUT . wParam=0; lpvParam = int;
SPI_SETSCREENSAVETIMEOUT wParam=int; lpvParam=NULL;
SPI_LANGDRIVER .
wParam=0; lpvParam = char ;
SPI_SETDESKWALLPAPER .
wParam=0; lpvParam = char ;
SPI_SETDOUBLECLICKTIME .
wParam=int; lpvParam=NULL;
SPI_SETDOUBLECLKHEIGHT . wParam=int; lpvParam=NULL;
SPI_SETDOUBLECLKWIDTH .
wParam=int; lpvParam=NULL;
SPI_SETMOUSEBUTTONSWAP .
wParam=BOOL; lpvParam=NULL;
BOOL SetKeyboardState(lpbKeyState)
LPBYTE lpbKeyState; // ,
. 256 256 . , . "NumLock", "CapsLock" "ScrollLock" , , . true .
int ShowCursor(bShow)
BOOL bShow; //
. - . , , . , n- false , n- true.
BOOL SwapMouseButton(fSwap)
BOOL fSwap; //
, . BOOL .
BOOL ClipCursor(lprc)
CONST RECT *lprc; // ,
typedef struct tagRECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT;
. true .
BOOL SetCursorPos(X, Y)
int X; //
int Y; //
. true .
BOOL SetCaretBlinkTime(uMSeconds)
UINT uMSeconds// ,
.
DWORD GetSysColor(nIndex)
int nIndex; //
. .
int GetDeviceCaps(hdc, nIndex)
HDC hdc; // (device context)
int nIndex; //
. GetDC GetWindowDC.
BOOL EnumDisplaySettings(lpszDeviceName,iModeNum,lpDevMode)
LPCTSTR lpszDeviceName; // -
DWORD iModeNum; //
LPDEVMODE lpDevMode; // DEVMODE
, . true . , , , false.
COLORREF GetPixel(hdc,nXPos,nYPos)
HDC hdc; //
int nXPos; //
int nYPos; //
. GetDC GetWindowDC.
BOOL SetSysColors(cElements,lpaElements,lpaRgbValues)
int cElements; //
CONST INT *lpaElements; // , GetSysColor
CONST COLORREF *lpaRgbValues; //
.
LONG ChangeDisplaySettings(lpDevMode,dwflags)
LPDEVMODE lpDevMode;// DEVMODE
DWORD dwflags;// , ,
.
BOOL BitBlt(hdcDest,nXDest,nYDest,nWidth,nHeight,hdcSrc,nXSrc,nYSrc,dwRop)
HDC hdcDest;// - (device context)
int nXDest;// x
int nYDest;// y
int nWidth;//
int nHeight;//
HDC hdcSrc;// - (device context)
int nXSrc;// x
int nYSrc;// y
DWORD dwRop;//
. GetDC GetWindowDC. true . (-), false.
:
BLACKNESS , , 0 ( ).
DSTINVERT .
MERGECOPY "" .
MERGEPAINT "" .
NOTSRCCOPY .
NOTSRCERASE " " .
PATCOPY .
PATINVERT .
PATPAINT "", "" .
SRCAND "".
SRCCOPY .
SRCERASE "".
SRCINVERT .
SRCPAINT "".
WHITENESS , , 1 ( ).
WORD WINAPI CascadeWindows(hwndParent, wHow, lpRect, cKids, lpKids)
HWND hwndParent,//
UINT wHow, // ,
CONST RECT *lpRect,// ,
UINT cKids,//
const HWND FAR *lpKids//
() .
WORD WINAPI TileWindows(hwndParent, wHow, lpRect, cKids, lpKids)
HWND hwndParent, //
UINT wHow,// ,
CONST RECT *lpRect,// ,
UINT cKids,//
const HWND FAR *lpKids//
.
BOOL SetWindowPos(hWnd, hWndInsertAfter,X,Y,cx,cy, uFlags)
HWND hWnd,//
HWND hWndInsertAfter,//
int X,//
int Y,//
int cx,//
int cy,//
UINT uFlags //
, .
BOOL BringWindowToTop(hWnd)
HWND hWnd //
Z-. . .
COLORREF SetPixel(hdc,X,Y, crColor)
HDC hdc, //
int X, // x-
int Y, // y-
COLORREF crColor //
.
HWND SetActiveWindow(hWnd)
HWND hWnd //
.
HWND GetActiveWindow(VOID)
. .
HWND GetDesktopWindow(VOID)
Windows.
HDC GetDC(hWnd)
HWND hWnd; //
. GetActiveWindow GetDesktopWindow. ReleaseDC.
HDC GetWindowDC(hWnd)
HWND //
. GetActiveWindow GetDesktopWindow. ReleaseDC.
int ReleaseDC(hWnd,hDC)
HWND hWnd; //
HDC hDC; //
.
DWORD GetProfileString(lpAppName,lpKeyName,lpDefault,lpReturnedString,nSize)
LPCTSTR lpAppName; //
LPCTSTR lpKeyName; //
LPCTSTR lpDefault; //
LPTSTR lpReturnedString; //
DWORD nSize //
WIN.INI.
.
[] =
, . ( ).
WIN.INI .
[windows] device=<>,<>,<>
DWORD DeviceCapabilities(pDevice,pPort,fwCapability,pOutput,pDevMode)
LPCTSTR pDevice; //
LPCTSTR pPort; //
WORD fwCapability; //
LPTSTR pOutput; //
CONST DEVMODE *pDevMode; // DEVMODE
.
BOOL PrintDlg(lppd)
LPPRINTDLG lppd; // PRINTDLG
. true .
int StartDoc(hdc,lpdi)
HDC hdc; //
CONST DOCINFO *lpdi; // DOCINFO
. .
int EndDoc(hdc)
HDC hdc; //
. .
int StartPage(hDC)
HDC hDC; //
( ). .
int EndPage(hdc)
HDC hdc; //
, . . .
BOOL CharToOemBuff(lpszSrc,lpszDst,cchDstLength)
LPCTSTR lpszSrc; //
LPSTR lpszDst; //
DWORD cchDstLength; //
OEM (original equipment manufacturer). true.
BOOL GetCommTimeouts(hFile,lpCommTimeouts)
HANDLE hFile; //
LPCOMMTIMEOUTS lpCommTimeouts; // COMMTIMEOUTS
, , , CreateFile.
BOOL GetCommProperties(hFile,lpCommProp)
HANDLE hFile; //
LPCOMMPROP lpCommProp; // COMMPROP
, CreateFile.
BOOL GetCommState(hFile,lpDCB)
HANDLE hFile; //
LPDCB lpDCB; // DCB
/ , CreateFile.
DCB .
typedef struct _DCB {
DWORD DCBlength; // DCB [sizeof(DCB)]
DWORD BaudRate; // bps
DWORD fBinary: 1; // (true/false)
DWORD fParity: 1; // (true/false)
DWORD fOutxCtsFlow:1; // CTS (true/false)
DWORD fOutxDsrFlow:1; // DSR (true/false)
DWORD fDtrControl:2; // DTR
DWORD fDsrSensitivity:1; // DSR (true/false)
DWORD fTXContinueOnXoff:1; // XOFF (true/false)
DWORD fOutX: 1; // OFF (true/false)
DWORD fInX: 1; // OFF (true/false)
DWORD fErrorChar: 1; // (true/false)
DWORD fNull: 1; // (true/false)
DWORD fRtsControl:2; // RTS
DWORD fAbortOnError:1; // (true/false)
DWORD fDummy2:17; // ,
WORD wReserved; // ,
WORD XonLim; /* XON */
WORD