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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? iis.cpp

?? pgp soucecode pgp soucecode
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
			&hMetaData
			);

		if (FAILED(hres))
		{
			SetLastError(hres);

			wsprintf(
				szStatus,
				"DeleteVirtualRoot: Error %d (0x%08x) getting handle to metabase",
				hres,
				hres
				);

			goto Failed;
		}
		else
			fMetaData = TRUE;

		// Do the work

		hres = g_spAdminBase->DeleteKey(
			hMetaData,
			szwVDir
			);

		if (FAILED(hres))
		{
			SetLastError(hres);

			wsprintf(
				szStatus,
				"DeleteVirtualRoot: IMSAdminBase->DeleteKey returned %d (0x%08x)",
				hres,
				hres
				);

			goto Failed;
		}

		// Commit the changes

		g_spAdminBase->SaveData();

		// Clean up and return

		g_spAdminBase->CloseKey(hMetaData);

		LocalFree(szwParent);
		LocalFree(szwVDir);

		wsprintf(szStatus, "DeleteVirtualRoot completed successfully.");

		return TRUE;

	Failed:

		dwLastError = GetLastError();

		if (fMetaData)
			g_spAdminBase->CloseKey(hMetaData);

		LocalFree(szwParent);
		LocalFree(szwVDir);

		SetLastError(dwLastError);

		return FALSE;
	}

	/*
	Function :  DeleteApplication

	Description:

		Deletes the specified application

	Arguments:

		szMetaPath - The metabase path of the application to be deleted
		fRecoverable - If this flag is true, the app will be recoverable
		fRecursive - If this flag is true, all sub-applications will also be deleted
		szStatus - The function can report error descriptions in this string

	Return Value:

		Returns TRUE if successfull; otherwise FALSE.

	*/
	BOOL DeleteApplication(
		LPSTR szMetaPath,
		BOOL fRecoverable,
		BOOL fRecursive,
		CHAR szStatus[STATUS_STRING_SIZE]
		)
	{
		CHAR szFullMetaPath[MAX_PATH];
		LPWSTR szwMetaPath = NULL;
		HRESULT hres;
		DWORD dwLastError;

		// Sanitize the metabase path and get a unicode version
    
		if (*szMetaPath == '/')
			strcpy(szFullMetaPath, szMetaPath);
		else
			wsprintf(szFullMetaPath, "/LM/%s", szMetaPath);

		szwMetaPath = MakeUnicode(szFullMetaPath, 1);

		if (!szwMetaPath)
		{
			wsprintf(
				szStatus,
				"DeleteApplication failed: %d",
				GetLastError()
				);

			goto Failed;
		}

		// Do the work

		if (fRecoverable)
		{
			hres = g_spWamAdmin->AppDeleteRecoverable(szwMetaPath, fRecursive);

			if (FAILED(hres))
			{
				SetLastError(hres);

				wsprintf(
					szStatus,
					"DeleteApplication: IWamAdmin->AppDeleteRecoverable failed: %d (0x%08x)",
					hres,
					hres
					);

				goto Failed;
			}
		}
		else
		{
			hres = g_spWamAdmin->AppDelete(szwMetaPath, fRecursive);

			if (FAILED(hres))
			{
				SetLastError(hres);

				wsprintf(
					szStatus,
					"DeleteApplication: IWamAdmin->AppDelete failed: %d (0x%08x)",
					hres,
					hres
					);

				goto Failed;
			}
		}

		// Clean up

		LocalFree(szwMetaPath);

		wsprintf(szStatus, "DeleteApplication completed successfully.");

		return TRUE;

	Failed:

		dwLastError = GetLastError();
    
		LocalFree(szwMetaPath);

		SetLastError(dwLastError);
        
		return FALSE;
	}

	/*
	Function :  MakeUnicode

	Description:

		Returns a unicode version of the provided string

	Arguments:

		szString - The string to be translated

	Return Value:

		Returns a pointer to the unicode string if successful, NULL if not

	*/
	LPWSTR MakeUnicode(
		LPSTR szString,
		BOOL bRegularString
		)
	{
		LPWSTR szwRet;
		DWORD dwNumChars;
		int	NumChars;

		if (bRegularString)
			NumChars = -1;
		else
			NumChars = (strlen(szString) + 2);

		// Allocate buffer for the returned wide string

		dwNumChars = MultiByteToWideChar(
			CP_ACP,         // code page
			MB_PRECOMPOSED, // flags
			szString,       // ANSI source string
			-1,             // source string length
			NULL,           // destination buffer
			0               // size of destination buffer in chars
			);

		szwRet = (LPWSTR)LocalAlloc(LPTR, dwNumChars * sizeof(WCHAR));

		if (!szwRet)
			return NULL;

		// Do the conversion

		MultiByteToWideChar(
			CP_ACP,         // code page
			MB_PRECOMPOSED, // flags
			szString,       // ANSI source string
			NumChars,             // source string length
			szwRet,         // destination buffer
			dwNumChars      // size of destination buffer in chars
			);
   
		return szwRet;
	}

	/*
	Function :  WrAddKey

	Description:

		Creates the specified metabase path

	Arguments:

		szMetaPath - The metabase path to be created

	Return Value:

		Returns TRUE if successfull; otherwise FALSE.

	*/
	BOOL WrAddKey(
		LPSTR szMetaPath
		)
	{
		CHAR szParent[MAX_PATH];
		CHAR szDir[MAX_PATH];
		LPWSTR szwPath = NULL;
		LPWSTR szwNew = NULL;
		LPSTR szPtr;
		METADATA_HANDLE hMetaData;
		BOOL fMetaData = FALSE;
		HRESULT hres;
		DWORD dwLastError;

		// Parse the supplied metabase path into parent and new directory

		strcpy(szParent, szMetaPath);

		szPtr = strrchr(szParent, '/');

		if (!szPtr)
		{
			SetLastError(ERROR_INVALID_PARAMETER);
			goto Failed;
		}

		*szPtr = 0;

		strcpy(szDir, szPtr + 1);

		// Open the metabase

		szwPath = MakeUnicode(szParent, 1);
		szwNew = MakeUnicode(szDir, 1);

		if (!szwPath || !szwNew)
		{
			SetLastError(ERROR_NOT_ENOUGH_MEMORY);
			goto Failed;
		}

		hres = g_spAdminBase->OpenKey(
			METADATA_MASTER_ROOT_HANDLE,
			szwPath,
			METADATA_PERMISSION_READ|METADATA_PERMISSION_WRITE,
			60000,
			&hMetaData
			);

		if (FAILED(hres))
		{
			SetLastError(hres);
			goto Failed;
		}
		else
			fMetaData = TRUE;

		// Create the new key

		hres = g_spAdminBase->AddKey(
			hMetaData,
			szwNew
			);

		if (FAILED(hres))
		{
			SetLastError(hres);
			goto Failed;
		}

		// Clean up

		hres = g_spAdminBase->CloseKey(hMetaData);

		fMetaData = FALSE;

		if(szwNew)
		LocalFree(szwNew);

		if(szwPath)
			LocalFree(szwPath);

		return TRUE;

	Failed:

		dwLastError = GetLastError();

		if (fMetaData)
			g_spAdminBase->CloseKey(hMetaData);

		LocalFree(szwNew);
		LocalFree(szwPath);


		SetLastError(dwLastError);

		return FALSE;
	}

	/*
	Function :  WrSetData

	Description:

		Sets the specified data in the metabase

	Arguments:

		szMetaPath - The metabase path where the data will be set
		dwIdentifier - The metabase data identifier
		dwAttributes - The data attributes
		dwUserType - The metabase user type
		dwDataType - The type of data being set
		dwDataSize - The size of the data being set
		pData - The actual data

	Return Value:

		Returns TRUE if successfull; otherwise FALSE.

	*/
	BOOL WrSetData(
		LPSTR szMetaPath,
		DWORD dwIdentifier,
		DWORD dwAttributes,
		DWORD dwUserType,
		DWORD dwDataType,
		DWORD dwDataSize,
		LPVOID pData
		)
	{
		LPWSTR szwPath = NULL;
		LPWSTR szwValue = NULL;
		METADATA_RECORD mdRecord;
		METADATA_HANDLE hMetaData;
		BOOL fMetaData = FALSE;
		HRESULT hres;
		DWORD dwLastError;


		// Get a handle to the metabase location specified

		szwPath = MakeUnicode(szMetaPath, 1);

		if (!szwPath)
			goto Failed;

		hres = g_spAdminBase->OpenKey(
			METADATA_MASTER_ROOT_HANDLE,
			szwPath,
			METADATA_PERMISSION_READ|METADATA_PERMISSION_WRITE,
			60000,
			&hMetaData
			);

		if (FAILED(hres))
		{
			SetLastError(hres);
			goto Failed;
		}
		else
			fMetaData = TRUE;

		//
		// Populate the metadata record
		//

		mdRecord.dwMDIdentifier = dwIdentifier;
		mdRecord.dwMDAttributes = dwAttributes;
		mdRecord.dwMDUserType = dwUserType;
		mdRecord.dwMDDataType = dwDataType;
		mdRecord.dwMDDataTag = 0;

		switch (mdRecord.dwMDDataType)
		{
		case ALL_METADATA:
			SetLastError(ERROR_NOT_SUPPORTED);
			goto Failed;

		case BINARY_METADATA:
			mdRecord.dwMDDataLen = dwDataSize;
			mdRecord.pbMDData = (PBYTE)pData;
			break;

		case DWORD_METADATA:
			mdRecord.dwMDDataLen = sizeof(DWORD);
			mdRecord.pbMDData = (PBYTE)pData;
			break;

		case EXPANDSZ_METADATA:
			SetLastError(ERROR_NOT_SUPPORTED);
			goto Failed;

		case STRING_METADATA:
			szwValue = MakeUnicode((LPSTR)pData, 1);

			if (!szwValue)
				goto Failed;

			mdRecord.dwMDDataLen = sizeof(WCHAR) * (wcslen(szwValue) + 1);
			mdRecord.pbMDData = (PBYTE)szwValue;
			break;

		case MULTISZ_METADATA:
			szwValue = MakeUnicode((LPSTR)pData, 0);

			if (!szwValue)
				goto Failed;

			mdRecord.dwMDDataLen = sizeof(WCHAR) * (wcslen(szwValue) + 2);
			mdRecord.pbMDData = (PBYTE)szwValue;
			break;

		default:
			SetLastError(ERROR_INVALID_PARAMETER);
			goto Failed;
		}

		//
		// Do the work
		//

		hres = g_spAdminBase->SetData(
			hMetaData,
			L"/",
			&mdRecord
			);

		if (FAILED(hres))
		{
			SetLastError(hres);
			goto Failed;
		}

		//
		// Close the metabase
		//

		g_spAdminBase->CloseKey(hMetaData);
		fMetaData = FALSE;

		//
		// Clean up
		//

		LocalFree(szwPath);
		//LocalFree(szwValue);

		return TRUE;

	Failed:

		dwLastError = GetLastError();

		if (fMetaData)
			g_spAdminBase->CloseKey(hMetaData);

		LocalFree(szwPath);
		LocalFree(szwValue);

		SetLastError(dwLastError);

		return FALSE;
	}
#else
	int CreateIISVDir(int arg)
	{
		return 0;
	}
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本中文字幕不卡| 亚洲bt欧美bt精品777| 欧美日韩午夜影院| 国产成人综合亚洲91猫咪| 亚洲一区二区四区蜜桃| 国产日韩欧美a| 日韩一卡二卡三卡国产欧美| 一本大道综合伊人精品热热| 国产精品原创巨作av| 日韩成人免费电影| 一区二区免费在线| 日本一区二区电影| 久久综合给合久久狠狠狠97色69| 欧美少妇bbb| 91浏览器打开| 成人丝袜18视频在线观看| 日本vs亚洲vs韩国一区三区 | 久久久久久99精品| 欧美日韩大陆一区二区| 91论坛在线播放| 成人免费毛片app| 国产一区二区三区高清播放| 91国产丝袜在线播放| 国产一区二区三区四区五区美女| 亚洲成人福利片| 亚洲欧美aⅴ...| 国产精品成人午夜| 国产视频一区不卡| 精品成人一区二区三区四区| 欧美色精品在线视频| 色系网站成人免费| 91视频在线观看免费| 不卡视频免费播放| aa级大片欧美| 96av麻豆蜜桃一区二区| 99久久伊人精品| 成人av网站在线| 99久久国产综合精品麻豆| www.在线欧美| 91麻豆免费看| 欧美亚洲一区二区在线| 欧美性三三影院| 欧美性视频一区二区三区| 色欧美日韩亚洲| 欧美片网站yy| 日韩免费福利电影在线观看| 日韩久久免费av| 久久久www成人免费无遮挡大片| 久久久国产精品午夜一区ai换脸| 久久网这里都是精品| 久久久久久久久久电影| 中文字幕乱码久久午夜不卡| 国产精品―色哟哟| 亚洲乱码国产乱码精品精的特点| 亚洲精品国产精品乱码不99| 亚洲综合丝袜美腿| 五月婷婷久久综合| 美女视频网站黄色亚洲| 国产伦精品一区二区三区免费迷| 国产高清不卡二三区| 国产成人av资源| 99九九99九九九视频精品| 在线亚洲高清视频| 91精品国产91久久久久久一区二区 | 日韩精品一区第一页| 毛片av中文字幕一区二区| 国产一区二区不卡老阿姨| 夫妻av一区二区| 色菇凉天天综合网| 欧美久久久久久蜜桃| 日韩精品自拍偷拍| 国产精品网站在线| 亚洲主播在线播放| 激情综合一区二区三区| 91视频在线观看免费| 欧美一级片在线| 国产精品午夜春色av| 亚洲国产精品一区二区尤物区| 人妖欧美一区二区| www.日韩精品| 日韩欧美自拍偷拍| 亚洲欧洲综合另类| 日韩av高清在线观看| 国产成人免费av在线| 欧美日韩在线免费视频| 精品国产露脸精彩对白| 亚洲美腿欧美偷拍| 韩国欧美一区二区| 欧美在线色视频| 久久久精品综合| 日韩电影免费在线| 91热门视频在线观看| 日韩一区二区三区在线视频| 亚洲视频精选在线| 韩国精品主播一区二区在线观看 | 久久综合久久综合九色| 亚洲精品福利视频网站| 国产在线不卡一区| 一区二区三区免费在线观看| 久久99久久精品欧美| 色中色一区二区| 久久久99精品免费观看不卡| 日韩高清不卡一区二区| 日本道色综合久久| 欧美激情一区二区三区四区 | 亚洲综合一区二区三区| 国产一区二区网址| 欧美一级理论性理论a| 亚洲黄色在线视频| 成人性色生活片| 久久久三级国产网站| 日本欧美肥老太交大片| 在线观看日韩国产| 国产精品网友自拍| 精品一区二区三区在线观看国产| 欧美日韩一区二区欧美激情| 亚洲六月丁香色婷婷综合久久 | 欧美人xxxx| 亚洲午夜私人影院| 91看片淫黄大片一级在线观看| 国产欧美一区二区精品婷婷| 毛片一区二区三区| 日韩欧美一区二区视频| 午夜精品免费在线观看| 欧美日韩综合不卡| 亚洲国产精品久久久久婷婷884| 色哟哟亚洲精品| 亚洲人亚洲人成电影网站色| 成+人+亚洲+综合天堂| 国产精品女主播在线观看| 成人福利视频网站| 国产精品久久久久久久久免费丝袜 | 不卡av免费在线观看| 国产色91在线| 国内一区二区在线| 国产亚洲一二三区| 国产福利精品导航| 国产丝袜在线精品| 国产精品99久久久久久久女警 | 亚洲一区二区在线观看视频| 欧美在线观看一二区| 亚洲午夜激情av| 91精品国产入口在线| 美女性感视频久久| 久久蜜桃av一区二区天堂 | 粉嫩欧美一区二区三区高清影视| 国产三级一区二区| eeuss国产一区二区三区| 欧美激情一二三区| 99久久综合国产精品| 中文字幕一区二区三区在线不卡 | 成人午夜电影久久影院| 国产精品剧情在线亚洲| 在线观看视频一区二区| 丝袜脚交一区二区| 精品欧美一区二区久久| 国产精品一色哟哟哟| 亚洲人成在线播放网站岛国| 欧洲一区二区三区在线| 蜜桃91丨九色丨蝌蚪91桃色| 2023国产精华国产精品| 不卡视频一二三四| 午夜影院久久久| 久久亚洲二区三区| 91在线观看地址| 日韩精品福利网| 久久久久国产精品免费免费搜索| 国产二区国产一区在线观看| 一区二区三区成人在线视频| 欧美三级在线视频| 精品无人区卡一卡二卡三乱码免费卡| 久久久91精品国产一区二区精品 | 91精品国产欧美日韩| 国产一区二区中文字幕| 18成人在线视频| 制服丝袜中文字幕亚洲| 国产福利一区二区三区视频| 亚洲一区二区三区免费视频| 精品精品欲导航| 97精品久久久久中文字幕| 日韩国产欧美视频| 亚洲国产精品高清| 日韩一级免费观看| jizz一区二区| 久久精品二区亚洲w码| ●精品国产综合乱码久久久久| 日韩一级大片在线| 97se亚洲国产综合自在线不卡| 青青草成人在线观看| 亚洲天堂精品在线观看| 日韩精品一区在线| 色94色欧美sute亚洲线路二| 国产一区二区精品久久| 亚洲一区二区三区四区的| 中文字幕精品—区二区四季| 在线播放91灌醉迷j高跟美女| 91蜜桃网址入口| 国产福利不卡视频| 美女视频黄频大全不卡视频在线播放| 一区二区三区四区五区视频在线观看|