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

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

?? demowin32.cpp

?? 用于oracle開(kāi)發(fā)用于查詢數(shù)據(jù)庫(kù)編寫(xiě)存儲(chǔ)過(guò)
?? CPP
字號(hào):
// PL/SQL Developer Plug-In demo
// Copyright 1999 Allround Automations
// support@allroundautomations.nl
// http://www.allroundautomations.nl
// Demo Developed by David Maisonave (david@axter.com)

// This demo shows an elementary interface

// To debug the demo, change the project property settings in the LINK tab
// Change the [Output File Name] field from
// Debug/DemoWin32.dll
// To the following:
// C:\Program Files\PLSQL Developer\PlugIns/DemoWin32.dll
// Change the above directory to reflect the correct location of the PLSQL Developer directory.
// The above change will make the compiler compile the code to the PlugIns directory

// The project property settings in the debug tab should also be changed to reflect correct PLSQL Dev directory
// Check the following field: [Project]->[Settings]->[Debug](tab)->[Executable For Debug Session](field)

// DemoWin32.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "DemoWin32.h"
#include "PlSql_functions.h"
#include <string>
#include <sstream>

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    return TRUE;
}

bool UseAutoSetCursorPosition = false;

const char* IntToStr(int n)
{
	static std::string s;
	std::stringstream ss;
	ss << n;
	s = ss.str();
	return s.c_str();
}

void ShowMessage(const char* Data)
{
	MessageBox(NULL,Data, "Msg from AddIn",0);
}
char* MenuItemInterface(int Index, bool CreateMenuItem_);


//---------------------------------------------------------------------------
// Creating menus
char* CreateMenuItem(int Index)
{
	return MenuItemInterface(Index, true);
}

//---------------------------------------------------------------------------
// Show configuration dialog
void  Configure()
{
	ShowMessage("No configue menu");
}

//---------------------------------------------------------------------------
// Plug-In identification, a unique identifier is received and
// the description is returned
char* IdentifyPlugIn(int ID)
{
	PlugInID = ID;
	return Desc;
}
//---------------------------------------------------------------------------
void OnMenuClick(int Index)
{
	MenuItemInterface(Index, false);
}
//---------------------------------------------------------------------------
// Called when someone logs on or off
void OnConnectionChange()
{
}
//---------------------------------------------------------------------------
// Called when another item in the browser gets selected
void OnBrowserChange()
{
  char *Type, *Owner, *Name;

  IDE_GetBrowserInfo(&Type, &Owner, &Name);
}
//---------------------------------------------------------------------------
// Called when the Plug-In is created
void OnCreate()
{ 
	char Buff[32]="";
	GetProfileString("CursorPosOption","UseAutoSetCursorPosition","0",Buff,sizeof(Buff));
	UseAutoSetCursorPosition = (atoi(Buff))?true:false;
}
//---------------------------------------------------------------------------
// Called when the Plug-In is activated
void OnActivate()
{
  OnBrowserChange();
  OnConnectionChange();
  OnWindowChange();
}
//---------------------------------------------------------------------------
// Called when the Plug-In is destroyed
void OnDestroy()
{
}
//---------------------------------------------------------------------------
void DoSQLForm()
{
}

//---------------------------------------------------------------------------
void ShowBrowserObject()
{
	char *Type, *Owner, *Name;
	char s[100];
	
	IDE_GetBrowserInfo(&Type, &Owner, &Name);
	s[0] = 0;
	strcat(s, Type);
	strcat(s, "\n");
	strcat(s, Owner);
	strcat(s, "\n");
	strcat(s, Name);
	ShowMessage(s);
}
//---------------------------------------------------------------------------
void ShowConnectionInfo()
{
	char *Username, *Password, *Database;
	char s[100];
	
	IDE_GetConnectionInfo(&Username, &Password, &Database);
	s[0] = 0;
	strcat(s, Username);
	strcat(s, "\n");
	strcat(s, Password);
	strcat(s, "\n");
	strcat(s, Database);
	ShowMessage(s);
}
//---------------------------------------------------------------------------
void SetSelection(char *s)
{
	int H = IDE_GetEditorHandle();
	if (H > 0)
	{
		SendMessage((HWND)H, EM_REPLACESEL, true, (int)s);
	}
}
//---------------------------------------------------------------------------
void MaximizeWindow()
{
	int H = IDE_GetChildHandle();
	int M = IDE_GetClientHandle();
	if (H > 0)
	{
		SendMessage((HWND)M, WM_MDIMAXIMIZE, H, (int)0);
	}
}
void SaveAndExecute()
{
	IDE_SaveFile();
	IDE_Perform(pcmd_Execute);
}

DWORD GetCurrentCusorPosition(int &x, int &y)
{
	HWND H = (HWND)IDE_GetEditorHandle();
	DWORD StartingPos;
	SendMessage(H, EM_GETSEL, (WPARAM) (LPDWORD) &StartingPos, NULL);
	DWORD StartingPos_x = StartingPos;
	y = SendMessage(H, EM_LINEFROMCHAR, (WPARAM) StartingPos, NULL);
	x = StartingPos - SendMessage(H, EM_LINEINDEX, y, NULL);
	return StartingPos_x;
}

int OnWindowClose(int WindowType, BOOL Changed)
{
	int x,y;
	DWORD StartingPos = GetCurrentCusorPosition(x,y);
	std::string FileName = IDE_Filename();
	WriteProfileString("CursorPos",FileName.c_str(),IntToStr(y));
	return 0;
}

bool WindowJustOpened = false;

void OnWindowCreate(int WindowType)
{
	WindowJustOpened = true;
}
void OnWindowChange()
{
	if (UseAutoSetCursorPosition && WindowJustOpened)
	{
		WindowJustOpened = false;
		std::string FileName = IDE_Filename();
		char Buff[32]="";
		GetProfileString("CursorPos",FileName.c_str(),"1",Buff,sizeof(Buff));
		DWORD LastPos = atoi(Buff);
		HWND H = (HWND)IDE_GetEditorHandle();
		DWORD p = SendMessage(H, EM_LINEINDEX, LastPos, NULL);
		SendMessage(H, EM_SETSEL, p, p);
	}
}

void DisplayCurrentCusorLineNumber(void)
{
	int x,y;
	DWORD StartingPos = GetCurrentCusorPosition(x,y);
	std::stringstream ss;
	ss << "Current line number = " << x << " " <<  y << " " << StartingPos ;
	ShowMessage(ss.str().c_str());
}

char* MenuItemInterface(int Index, bool CreateMenuItem_)
{
	switch (Index)
	{
    case 1 : 
		if (CreateMenuItem_) return "Session / Save and Execute";
		SaveAndExecute();
		return NULL;
    case 2 : 
		if (CreateMenuItem_) return "Edit / Test display Cursor position";
		DisplayCurrentCusorLineNumber();
		return NULL;
    case 3 :
		if (CreateMenuItem_) return "Tools / &Plug-In 2 Demo / &Maximize Window";
		MaximizeWindow();
		return NULL;
    case 4 :
		if (CreateMenuItem_) return "Tools / &Plug-In 2 Demo / &ReadOnly / &On";
		IDE_SetReadOnly(true);
		return NULL;
    case 5 :
		if (CreateMenuItem_) return "Tools / &Plug-In 2 Demo / &ReadOnly / O&ff";
		IDE_SetReadOnly(false);
		return NULL;
    case 6 :
		if (CreateMenuItem_) return "Tools / &Plug-In 2 Demo / &Editor/ ShowHandle...";
		ShowMessage(IntToStr(IDE_GetEditorHandle()));
		return NULL;
    case 7 :
		if (CreateMenuItem_) return "Tools / &Plug-In 2 Demo / &Editor/ SetSelection";
		SetSelection("New selected text");
		return NULL;
    case 8 :
		if (CreateMenuItem_) return "Tools / &Plug-In 2 Demo / &Auto Cursor / &On";
		UseAutoSetCursorPosition = true;
		WriteProfileString("CursorPosOption","UseAutoSetCursorPosition",IntToStr(UseAutoSetCursorPosition));
		return NULL;
    case 9 :
		if (CreateMenuItem_) return "Tools / &Plug-In 2 Demo / &Auto Cursor / O&ff";
		UseAutoSetCursorPosition = false;
		WriteProfileString("CursorPosOption","UseAutoSetCursorPosition",IntToStr(UseAutoSetCursorPosition));
		return NULL;
	}
	return "";
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区在线看| 亚洲在线免费播放| 日韩激情中文字幕| 99视频一区二区| 精品噜噜噜噜久久久久久久久试看 | 国产乱码精品1区2区3区| 欧美性一二三区| 亚洲日本在线观看| 高清视频一区二区| 久久综合色天天久久综合图片| 亚洲线精品一区二区三区八戒| 国产成人av电影在线播放| 日韩无一区二区| 亚洲妇女屁股眼交7| 91免费版在线| 中文字幕五月欧美| 懂色av一区二区三区免费观看| 欧美成人女星排名| 日韩成人一区二区| 欧美日本韩国一区| 亚洲午夜精品网| 色诱视频网站一区| 亚洲视频一区二区在线观看| 丁香五精品蜜臀久久久久99网站 | 91在线观看美女| 国产精品每日更新| 国产精品一区二区在线观看网站| 日韩精品一区二区三区在线| 肉肉av福利一精品导航| 精品视频一区三区九区| 亚洲一区二区精品视频| 色成年激情久久综合| 亚洲欧美经典视频| 久久久久久一级片| 狠狠网亚洲精品| 日韩三区在线观看| 美国欧美日韩国产在线播放| 欧美丰满嫩嫩电影| 日韩电影一区二区三区四区| 制服视频三区第一页精品| 丝袜脚交一区二区| 欧美一区二区三区婷婷月色| 日韩精品成人一区二区三区| 欧美电影一区二区| 免费xxxx性欧美18vr| 日韩一二三区视频| 精品中文av资源站在线观看| 欧美成人性战久久| 国产寡妇亲子伦一区二区| 国产日韩精品久久久| 丁香婷婷综合五月| 17c精品麻豆一区二区免费| 色哟哟一区二区三区| 亚洲在线视频一区| 91精品国产综合久久香蕉的特点 | 久久99国产乱子伦精品免费| 精品少妇一区二区三区在线播放| 精品亚洲欧美一区| 国产欧美日韩精品a在线观看| 成人黄色网址在线观看| 亚洲精品伦理在线| 在线电影一区二区三区| 久久福利视频一区二区| 久久九九99视频| 波波电影院一区二区三区| 亚洲自拍与偷拍| 51久久夜色精品国产麻豆| 国产一区二区三区国产| 中文字幕一区二区三区在线不卡 | 亚洲伦在线观看| 欧美三级视频在线观看 | 国产精品免费人成网站| 色婷婷av一区| 亚洲sss视频在线视频| 日韩欧美三级在线| 国产白丝精品91爽爽久久| 亚洲男人电影天堂| 7777精品伊人久久久大香线蕉最新版| 美脚の诱脚舐め脚责91| 中文字幕av资源一区| 在线观看网站黄不卡| 青青草精品视频| 国产精品五月天| 欧美日韩国产精选| 国产成a人亚洲| 午夜精品aaa| 中文字幕国产一区| 777精品伊人久久久久大香线蕉| 国产剧情一区二区三区| 亚洲精品写真福利| 精品国产自在久精品国产| 99久久99久久免费精品蜜臀| 天堂蜜桃91精品| 中文字幕免费不卡| 欧美一级xxx| av一区二区三区在线| 日本vs亚洲vs韩国一区三区| 中文字幕一区在线| 日韩精品自拍偷拍| 91激情五月电影| 久久97超碰国产精品超碰| 亚洲精品国产视频| 国产亚洲一区二区在线观看| 欧美性感一区二区三区| 国产69精品久久99不卡| 免费成人在线视频观看| 亚洲猫色日本管| 国产亚洲欧美日韩在线一区| 欧美最猛性xxxxx直播| 国产精品一区专区| 日本91福利区| 一区二区成人在线| 国产女人18水真多18精品一级做| 欧美日韩国产一级二级| 99热精品国产| 国产一区二区调教| 日韩精品国产欧美| 一区二区三区欧美亚洲| 欧美韩国日本不卡| 26uuu国产在线精品一区二区| 在线精品国精品国产尤物884a| 国产成a人亚洲| 久久99久久精品欧美| 亚洲成人久久影院| 亚洲精品乱码久久久久久| 国产精品午夜免费| 久久理论电影网| 日韩免费观看高清完整版 | 18涩涩午夜精品.www| 久久综合久久鬼色| 日韩免费观看高清完整版在线观看| 在线观看区一区二| 一本久久综合亚洲鲁鲁五月天 | 在线免费观看日本欧美| av在线播放成人| 成人午夜电影久久影院| 激情五月婷婷综合网| 美女网站色91| 日韩二区三区四区| 日韩精品亚洲专区| 天天综合日日夜夜精品| 亚洲一区二区成人在线观看| 亚洲日本丝袜连裤袜办公室| 国产精品美女久久久久久久久| 久久久美女毛片| 久久久久九九视频| 精品福利一区二区三区| 日韩欧美一级二级三级| 日韩久久久久久| 精品欧美久久久| 久久夜色精品国产欧美乱极品| 精品蜜桃在线看| wwww国产精品欧美| 久久精品欧美日韩| 欧美国产综合色视频| 中文字幕第一区二区| 国产精品嫩草久久久久| 国产精品久久久久天堂| 1区2区3区国产精品| 亚洲精品国产a久久久久久| 夜夜嗨av一区二区三区四季av | 亚洲精品一卡二卡| 亚洲狠狠爱一区二区三区| 久久er精品视频| 色综合色综合色综合色综合色综合 | 久久色.com| 日韩区在线观看| 337p亚洲精品色噜噜| 欧美亚洲国产一区二区三区va| 99久久99久久免费精品蜜臀| 成人一区在线观看| 国产高清在线观看免费不卡| 国模一区二区三区白浆| 国产一区二区影院| 激情久久五月天| 精品一区二区在线视频| 经典三级在线一区| 激情综合色播激情啊| 国产在线精品一区二区不卡了| 久久国产精品99精品国产| 捆绑调教一区二区三区| 老司机免费视频一区二区三区| 蜜桃视频一区二区三区在线观看| 男人的天堂久久精品| 久久爱另类一区二区小说| 久久超级碰视频| 国产精品乡下勾搭老头1| 国产a区久久久| 91在线视频免费91| 在线免费观看日本一区| 欧美日韩激情一区二区三区| 欧美精品九九99久久| 91精品国产黑色紧身裤美女| 欧美日韩大陆在线| 日韩美女视频在线| 久久精品在线观看| 国产精品素人视频| 国产69精品久久久久777| 岛国精品在线观看| 97精品久久久午夜一区二区三区|