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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? win32api.cpp

?? <Visual C++ 網(wǎng)絡(luò)程序設(shè)計(jì)實(shí)例詳解>配套源碼
?? CPP
字號(hào):
/*
	win32api.c
	Implementazione di quanto omesso dall' API (SDK).
	Luca Piergentili, 13/09/98
	lpiergentili@yahoo.com
	http://www.geocities.com/lpiergentili/
*/
#include "env.h"
#include "pragma.h"
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include "strcpyn.h"
#include "stristr.h"
#include "window.h"
#include <shellapi.h>
#include "win32api.h"

/*
	WritePrivateProfileInt()

	Scrive un intero nel file .ini (nell'API e' presente solo la WritePrivateProfileString()).
*/
BOOL WritePrivateProfileInt(LPCSTR lpcszSectioneName,LPCSTR lpcszKeyName,int nValue,LPCSTR lpcszIniFile)
{
	char buffer[16];
	memset(buffer,'\0',sizeof(buffer));
	_snprintf(buffer,sizeof(buffer)-1,"%d",nValue);
	return(::WritePrivateProfileString(lpcszSectioneName,lpcszKeyName,buffer,lpcszIniFile));
}

/*
	GetThisModuleFileName()

	Recupera il nome del file eseguibile corrente.
	Considera come eseguibile solo quanto termina con ".exe".
	Non usa GetModuleFileName() perche' quest'ultima sotto W95/98 se il numero di versione interno
	del file e' inferiore a 4 restituisce il nome corto.
*/
LPSTR GetThisModuleFileName(LPSTR lpszFileName,UINT nSize)
{
	int i = 0;
	char* p;
	char value[_MAX_PATH+1];

	memset(lpszFileName,'\0',nSize);
	
	strcpyn(value,::GetCommandLine(),sizeof(value));
	if((p = stristr(value,".exe"))!=NULL)
		i = p - value;
	if(i > 0)
	{
		strcpyn(value,::GetCommandLine(),sizeof(value));
		memcpy(value+i,".exe",4);
	}
	else
		return(NULL);

	p = value;
	while(*p)
	{
		if(*p=='"')
			*p = ' ';
		p++;
	}

	p = value;
	while(*p==' ')
		p++;
	
	for(i = 0; i < (int)nSize+1; i++)
	{
		if(*p==' ')
			if(stristr(lpszFileName,".exe"))
				break;

		lpszFileName[i] = *p++;
	}
	
	lpszFileName[i] = '\0';

	return(lpszFileName);
}

/*
	GetLastErrorString()
*/
void GetLastErrorString(void)
{
	LPVOID pBuffer;
	::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_IGNORE_INSERTS,
				NULL,
				GetLastError(),
				MAKELANGID(LANG_NEUTRAL,SUBLANG_SYS_DEFAULT/*SUBLANG_DEFAULT*/),
				(LPTSTR)&pBuffer,
				0,
				NULL);
	::MessageBox(NULL,(LPCSTR)pBuffer,"Error",MB_OK|MB_ICONWARNING|MB_TASKMODAL|MB_SETFOREGROUND|MB_TOPMOST);
	::LocalFree(pBuffer);
}

/*
	MessageBoxResource()
*/
int MessageBoxResource(HWND hWnd,UINT type,LPCSTR lpcszTitle,UINT nID)
{
	char buffer[1024];
	
	memset(buffer,'\0',sizeof(buffer));
	if(::LoadString(NULL,nID,buffer,sizeof(buffer)-1) <= 0)
		strcpy(buffer,"Error");
	
	return(::MessageBox(hWnd,buffer,lpcszTitle,type|(hWnd!=NULL ? MB_APPLMODAL : MB_TASKMODAL)|MB_SETFOREGROUND|MB_TOPMOST));
}

/*
	MessageBoxResourceEx()
*/
int MessageBoxResourceEx(HWND hWnd,UINT type,LPCSTR lpcszTitle,UINT nID,...)
{
	LPSTR pArgs;
	char buffer[1024];
	char fmt[1024];

	strcpy(buffer,"Error");
	memset(fmt,'\0',sizeof(fmt));

	if(::LoadString(NULL,nID,fmt,sizeof(fmt)-1) > 0)
	{
		pArgs = (LPSTR)&nID + sizeof(nID);
		memset(buffer,'\0',sizeof(buffer));
		_vsnprintf(buffer,sizeof(buffer)-1,fmt,pArgs);
	}

	return(::MessageBox(hWnd,buffer,lpcszTitle,type|(hWnd!=NULL ? MB_APPLMODAL : MB_TASKMODAL)|MB_SETFOREGROUND|MB_TOPMOST));
}

/*
	FormatResourceString()
*/
int FormatResourceString(LPSTR buffer,UINT nSize,UINT nID)
{
	memset(buffer,'\0',nSize);
	return(::LoadString(NULL,nID,buffer,nSize-1));
}

/*
	FormatResourceStringEx()
*/
int FormatResourceStringEx(LPSTR buffer,UINT nSize,UINT nID,...)
{
	int nRet = -1;
	LPSTR pArgs;
	char fmt[1024];

	memset(fmt,'\0',sizeof(fmt));
	memset(buffer,'\0',nSize);

	if(::LoadString(NULL,nID,fmt,sizeof(fmt)-1) > 0)
	{
		pArgs = (LPSTR)&nID + sizeof(nID);
		nRet = _vsnprintf(buffer,nSize-1,fmt,pArgs);
	}

	return(nRet);
}

/*
	ExtractResource()
*/
BOOL ExtractResource(UINT nID,LPCSTR lpcszResName,LPCSTR lpcszOutputFile)
{
	BOOL bExtracted = FALSE;

	HRSRC hRes = ::FindResource(NULL,MAKEINTRESOURCE(nID),lpcszResName);
	if(hRes)
	{
		HGLOBAL hGlobal = ::LoadResource(NULL,hRes);
		if(hGlobal)
		{
			LPVOID lpVoid = ::LockResource(hGlobal);
			if(lpVoid)
			{
				HANDLE handle;
				if((handle = ::CreateFile(lpcszOutputFile,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL))!=INVALID_HANDLE_VALUE)
				{
					DWORD dwToWrite = ::SizeofResource(NULL,hRes);
					DWORD dwWritten = 0L;
					::WriteFile(handle,lpVoid,(UINT)dwToWrite,&dwWritten,NULL);
					::CloseHandle(handle);
					bExtracted = (dwToWrite==dwWritten);
				}
			}
		}
	}

	return(bExtracted);
}

/*
	ExtractResourceIntoBuffer()
*/
BOOL ExtractResourceIntoBuffer(UINT nID,LPCSTR lpcszResName,LPSTR lpBuffer,UINT nBufferSize)
{
	BOOL bExtracted = FALSE;

	HRSRC hRes = ::FindResource(NULL,MAKEINTRESOURCE(nID),lpcszResName);
	if(hRes)
	{
		HGLOBAL hGlobal = ::LoadResource(NULL,hRes);
		if(hGlobal)
		{
			LPVOID lpVoid = ::LockResource(hGlobal);
			if(lpVoid)
			{
				memset(lpBuffer,'\0',nBufferSize);
				UINT nResSize = ::SizeofResource(NULL,hRes);
				if(nResSize <= nBufferSize)
				{
					memcpy(lpBuffer,lpVoid,nResSize);
					bExtracted = TRUE;
				}
			}
		}
	}

	return(bExtracted);
}

/*
	CreateShortcut()
*/
BOOL CreateShortcut(LPCSTR Target,LPCSTR Arguments,LPCSTR LinkFileName,LPCSTR LinkLocation,LPCSTR WorkingDir,UINT nIconIndex)
{
	BOOL bCreated = FALSE;
	HRESULT hres;
	ITEMIDLIST *id; 
	char szLocation[_MAX_PATH+1];
	char szLink[_MAX_PATH+1];
	
	// se non viene specificato nessun percorso, crea il link sul desktop
	if(!LinkLocation)
	{
		::SHGetSpecialFolderLocation(NULL,CSIDL_DESKTOPDIRECTORY,&id); 
		::SHGetPathFromIDList(id,&szLocation[0]); 
	}
	else
		strcpyn(szLocation,LinkLocation,sizeof(szLocation));
	
	// compone il pathname completo per il link
	_snprintf(szLink,sizeof(szLink)-1,"%s\\%s.lnk",szLocation,LinkFileName);

	hres = ::CoInitialize(NULL);
	if(SUCCEEDED(hres))
	{
		IShellLink* psl;
		hres = ::CoCreateInstance(	CLSID_ShellLink,
								NULL,
								CLSCTX_INPROC_SERVER,
								IID_IShellLink,
								(LPVOID*)&psl
								);

		if(SUCCEEDED(hres))
		{
			IPersistFile* ppf;
			psl->SetPath(Target);
			if(Arguments)
				psl->SetArguments(Arguments);
			if(WorkingDir)
				psl->SetWorkingDirectory(WorkingDir);

			hres = psl->QueryInterface(IID_IPersistFile,(LPVOID*)&ppf);
			if(SUCCEEDED(hres))
			{
				WORD wsz[_MAX_PATH+1];
				MultiByteToWideChar(CP_ACP,MB_PRECOMPOSED,szLink,-1,wsz,sizeof(wsz));
				hres = ppf->Save(wsz,TRUE);
				ppf->Release();
				bCreated = TRUE;
			}

			if(nIconIndex!=(UINT)-1)
				psl->SetIconLocation(Target,nIconIndex);
			
			psl->Release();
		}
	
		::CoUninitialize();
	}

	return(bCreated);
}

/*
	Delay()
*/
void Delay(int delay)
{
	DWORD start = ::GetTickCount();
	DWORD elapsed = 0L;

	do
	{
		::PeekAndPump();
		elapsed = ::GetTickCount() - start;
	}
	while(elapsed < (DWORD)(delay * 1000));
}

/*
	PeekAndPump()
*/
BOOL PeekAndPump(void)
{
	MSG msg;

#if defined(_AFX) || defined(_AFXDLL)
	while(::PeekMessage(&msg,NULL,0,0,PM_NOREMOVE))
	{
		if(!AfxGetApp()->PumpMessage())
		{
			::PostQuitMessage(0);
			return(FALSE);
		}
	}
	LONG lIdle = 0;
	while(AfxGetApp()->OnIdle(lIdle++))
		;
#else
	if(::PeekMessage(&msg,NULL,0,0,PM_REMOVE))
	{
		::TranslateMessage(&msg);
		::DispatchMessage(&msg);
	}
#endif

	return(TRUE);
}

/*
	GetWindowsVersion()
*/
OSVERSIONTYPE GetWindowsVersion(LPSTR lpszWindowsPlatform,UINT nSize,DWORD* dwMajorVersion/*=NULL*/,DWORD* dwMinorVersion/*=NULL*/)
{
	OSVERSIONINFO os = {0};
	os.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
	OSVERSIONTYPE osversiontype = UNKNOW_WINDOWS_VERSION;
	memset(lpszWindowsPlatform,'\0',nSize);

	if(::GetVersionEx(&os))
	{
		// service pack
		char szServiceRelease[_MAX_PATH+1] = {0};
		strcpyn(szServiceRelease,os.szCSDVersion,sizeof(szServiceRelease));
		
		switch(os.dwPlatformId)
		{
			// Win3.1
			case VER_PLATFORM_WIN32s:
				osversiontype = WINDOWS_31;
				strcpyn(lpszWindowsPlatform,"Microsoft

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜在线影院| 三级成人在线视频| 中文字幕不卡的av| 久久精品视频免费观看| 久久亚洲综合色一区二区三区| 欧美一区三区二区| 欧美一二区视频| 欧美顶级少妇做爰| 日韩欧美在线一区二区三区| 欧美一区二区久久久| 日韩一区二区三区观看| 精品卡一卡二卡三卡四在线| 欧美成人性战久久| 久久一夜天堂av一区二区三区| 日韩欧美三级在线| 久久众筹精品私拍模特| 国产亚洲一区二区在线观看| 久久久国际精品| 国产精品素人视频| 亚洲欧美偷拍卡通变态| 国产在线不卡一区| 国产精品自拍三区| 成人app下载| 色综合色狠狠综合色| 精品污污网站免费看| 日韩一区二区三区高清免费看看 | 91精品欧美久久久久久动漫 | 日韩精品中文字幕一区| 久久久久久免费| 国产精品狼人久久影院观看方式| 国产精品毛片a∨一区二区三区| ...av二区三区久久精品| 亚洲精品国产无套在线观| 午夜精品一区二区三区三上悠亚| 日韩在线一二三区| 国产综合久久久久影院| 成人精品视频网站| 欧美色老头old∨ideo| 91精品国产全国免费观看| 久久亚洲私人国产精品va媚药| 国产精品私房写真福利视频| 亚洲一区二区黄色| 国产精品911| 在线免费亚洲电影| 精品播放一区二区| 亚洲精品高清视频在线观看| 91免费小视频| 欧美丰满高潮xxxx喷水动漫| 久久综合狠狠综合久久激情| 一区二区三区中文字幕电影| 美女高潮久久久| 99精品欧美一区| 欧美一区二区女人| 成人免费视频在线观看| 天天色综合成人网| 99视频一区二区三区| 日韩一级免费一区| 成人免费小视频| 国产一区福利在线| 欧美午夜电影网| 亚洲国产精品高清| 免费观看91视频大全| kk眼镜猥琐国模调教系列一区二区| 911精品产国品一二三产区| 中文字幕精品一区二区三区精品| 日一区二区三区| 96av麻豆蜜桃一区二区| 欧美xfplay| 亚洲国产一区二区三区青草影视| 国产成a人亚洲| 欧美一级黄色片| 亚洲午夜在线视频| 成人av在线播放网站| 欧美白人最猛性xxxxx69交| 亚洲精品国产品国语在线app| 国产美女娇喘av呻吟久久| 91精品久久久久久蜜臀| 亚洲精品免费播放| 精品国产三级电影在线观看| 亚洲尤物视频在线| www.久久精品| 国产三区在线成人av| 久久精品国产亚洲一区二区三区| 91成人网在线| 亚洲欧洲日产国产综合网| 欧美一区二区三区婷婷月色| 亚洲女与黑人做爰| 波多野结衣精品在线| 久久久亚洲高清| 另类小说欧美激情| 91精品国产综合久久久久久漫画 | 亚洲国产中文字幕| 不卡电影一区二区三区| 国产视频一区二区在线| 精品一区二区影视| 精品国产髙清在线看国产毛片| 青青草国产成人av片免费| 欧美高清激情brazzers| 亚欧色一区w666天堂| 欧美综合在线视频| 亚洲小说欧美激情另类| 欧美性三三影院| 亚洲国产精品一区二区久久恐怖片 | 亚洲成人精品影院| 欧美日韩一级片在线观看| 亚洲一级二级在线| 欧美三区在线观看| 丝袜美腿亚洲综合| 日韩欧美国产精品一区| 日韩国产在线一| 亚洲精品中文在线影院| 成人小视频免费观看| 2021中文字幕一区亚洲| 国产精品中文字幕欧美| 久久久亚洲午夜电影| 国产在线一区二区| 久久久一区二区| 午夜精品一区二区三区免费视频| 欧美日韩视频在线第一区| 亚洲国产欧美日韩另类综合| 91黄视频在线| 一区二区三区**美女毛片| 在线亚洲高清视频| 日本一区中文字幕| 日韩视频免费直播| 麻豆精品一二三| 精品国产乱码久久久久久免费| 美女视频一区在线观看| 在线91免费看| 久久不见久久见中文字幕免费| 精品日韩av一区二区| 韩国一区二区视频| 国产日韩亚洲欧美综合| 国产毛片一区二区| 亚洲免费观看高清完整| 欧美视频在线观看一区| 亚洲成人综合视频| 日韩一区二区精品在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 国产午夜精品久久久久久久| 成人精品高清在线| 亚洲精选免费视频| 69av一区二区三区| 国产在线国偷精品产拍免费yy| 亚洲欧美偷拍三级| 337p亚洲精品色噜噜| 色狠狠色噜噜噜综合网| 亚洲午夜av在线| 日韩欧美高清在线| 91亚洲精品乱码久久久久久蜜桃 | 国产91在线看| 中文字幕日本不卡| 欧美日韩视频一区二区| 香蕉乱码成人久久天堂爱免费| 日韩精品一区二区三区中文不卡| 国产一区二区精品久久99| 欧美精品一区二| 91在线无精精品入口| 亚洲成av人片一区二区梦乃| 国产欧美日韩综合精品一区二区| 91香蕉视频在线| 奇米在线7777在线精品| 中文字幕第一页久久| 欧美一级xxx| aaa欧美日韩| 日本视频免费一区| 亚洲国产精品二十页| 一本大道久久a久久精二百| 久久99国内精品| 亚洲激情自拍视频| 久久综合九色综合久久久精品综合 | 一区二区三区产品免费精品久久75| 欧美成人国产一区二区| 9i看片成人免费高清| 蜜桃一区二区三区在线| 中文字幕亚洲电影| 欧美一区二区黄| 欧美日韩国产综合草草| 国产成人三级在线观看| 成人高清在线视频| 亚洲第四色夜色| 亚洲综合999| 中文字幕乱码亚洲精品一区| 正在播放一区二区| 色又黄又爽网站www久久| 春色校园综合激情亚洲| 欧美96一区二区免费视频| 亚洲欧美日韩一区二区| 久久一夜天堂av一区二区三区 | 亚洲精品日产精品乱码不卡| 精品久久久久久综合日本欧美| 欧美中文字幕不卡| 成人激情开心网| 精品一区二区在线看| 日韩精品成人一区二区三区| 怡红院av一区二区三区| 国产精品少妇自拍| 成人免费在线视频| 欧美激情中文字幕| 久久综合久久综合九色|