Ò»¡¢¸ÅÊö
ÔÚWindows²Ù×÷ϵͳÖдæÔÚÁ½ÖÖ¼ôÌù°å»úÖÆ£ºWindows±ê×¼¼ôÌù°åºÍOLE¼ôÌù°å»úÖÆ¡£
±ê×¼µÄWindows¼ôÌù°åÊÇÒ»¸ö±»ËùÓÐWindowsÓ¦ÓóÌÐò¹²ÏíµÄϵͳ·þÎñ£¬Òò´ËËü²¢Ã»ÓÐ×Ô¼ºµÄ¾ä±ú»òÀà¡£µ«Äã¿ÉÒÔͨ¹ýCWndÀàµÄ³ÉÔ±º¯ÊýÀ´¹ÜÀí¼ôÌù°å¡£
×Ô´ÓOLE£¨Object Linking and Embedding£¬¶ÔÏóÁ´½ÓºÍǶÈ룩µ®ÉúÖ®ºó£¬Windows²Ù×÷ϵͳÖбã³öÏÖÁ˵ڶþÖÖ¼ôÌù°å»úÖÆ¡ª¡ªOLE¼ôÌù°å»úÖÆ¡£±ê×¼µÄWindows¼ôÌù°åAPI£¨Application Programming Interface£¬Ó¦ÓóÌÐò±à³Ì½Ó¿Ú£©ÒÀÈ»¿ÉÓ㬵«ÊÇËûÒѾ±»OLEÊý¾Ý´«Êä»úÖÆÀ´ÊµÏÖÁË¡£OLEÖ§³ÖUDT£¨Uniform Data Transfer£¬Í³Ò»Êý¾Ý´«Ê䣩£¬²¢¿ÉÒÔͨ¹ýÍϷŲÙ×÷ʵÏÖ¼ôÌù°åµÄ¼ôÇС¢¸´ÖƺÍÕ³ÌùµÈ²Ù×÷¡£OLE¼ôÌù°å³ýÁËÓµÓбê×¼Windows¼ôÌù°åµÄÐÔÄÜÍ⣬»¹Ö§³Ö´«ÊäÓû§×Ô¶¨ÒåµÄ¼ôÌù°å¸ñʽ£¬²¢Äܹ»ÔÚ´«ÊäÊý¾Ýʱ°ó¶¨OLE¸ñʽ£¨Èç×ÖÌå¡¢×ֺŵȣ©¡£OLE¼ôÌù°å»úÖÆ½«³ÉΪ¸üΪÖ÷ÒªµÄÊý¾Ý´«Êä»úÖÆ¡£
±¾ÎĽ«¼òÒªÐðÊö±ê×¼Windows¼ôÌù°åµÄʵÏÖ£¬²¢½«Öصã·ÅÔÚÌÖÂÛÈçºÎͨ¹ýVisual C++ʵÏÖOLE¼ôÌù°åÉÏ¡£
¶þ¡¢Ñ¡ÔñÊʵ±µÄ¼ôÌù°å»úÖÆ
ÔÚÑ¡ÔñʹÓúÎÖÖ¼ôÌù°å»úÖÆÊ±Í¨³£Ó¦×ñÑÏÂÃæµÄÔÔò£ºÈç¹ûÓ¦ÓóÌÐòÔÚ½«À´ÓÖ¿ÉÄܾßÓÐеÄÐÔÄÜ£¨±ÈÈçÏÖÔÚÖ»ÐèÒª´«Êä´¿Îı¾£¬µ«½«À´ÓпÉÄÜÐèÒªÁíÍâ´«Êä×ÖÌåµÈÌØÐÔ£©£¬ÄÇôʹÓÃOLE¼ôÌù°å¡£
Èç¹ûÄãÕýÔÚʹÓÃÒ»¸öOLEÓ¦ÓóÌÐò£¬»òÕßÄãÏ£ÍûʹÓÃÈκÎOLEÌØÐÔ£¨ÈçÍϷŵȣ©ÄÇôÄãÓ¦µ±Ê¹ÓÃOLE¼ôÌù°å»úÖÆ¡£
Èç¹ûÄãÌṩÁËOLE¸ñʽ£¨Èç×ÖÌå¡¢×ֺŵȣ©£¬ÄÇôʹÓÃOLE¼ôÌù°å»úÖÆ¡£
Èý¡¢Ê¹ÓÃWindows±ê×¼¼ôÌù°å
´ó¶àÊýWindowsϵÄÓ¦ÓóÌÐòÖ§³Ö¼ôÇлò¸´ÖÆÊý¾Ýµ½Windows¼ôÌù°åÖÐÒÔ¼°´Ó¼ôÌù°åÕ³ÌùÊý¾ÝÖÁÄ¿µÄµØ¡£ÔÚÕâ¸ö¹ý³ÌÖУ¬¼ôÌù°åÊý¾Ý¸ñʽÔÚ¶àÖÖÓ¦ÓóÌÐòÖ®¼ä·¢ÉúÁ˱仯¡£ÏµÍ³¹¹¼Ü½ö½öͨ¹ýʵÏÖһЩÓÐÏÞµÄÀàÀ´Ö§³ÖһЩÓÐÏ޵ļôÌù°å¸ñʽ£¬Ï±íÁгöÁËWindows±ê×¼¼ôÌù°åÖ§³ÖµÄ¸ñʽ£¨µÚÒ»ÁС°Öµ¡±½«ÔÚÏÂÃæµÄ³ÌÐò´úÂëÖÐʹÓã©¡£
Öµ º¬Òå
CF_BITMAP Ò»¸ö¶ÔÓ¦ÓÚλͼµÄ¾ä±ú£¨HBITMAP£©¡£
CF_DIB Ò»¸ö°üº¬BITMAPINFO½á¹¹²¢ÇÒ
¸ú×ÅλͼÊý¾ÝµÄÄÚ´æ¶ÔÏó¡£
CF_DIF Êý¾Ý½»»¥¸ñʽ
CF_DSPBITMAP ÓÐÒ»¸ö˽ÓиñʽµÄλͼÏÔʾ¸ñʽ¡£
CF_DSPENHMETAFILE ÓÐÒ»¸ö˽ÓиñʽµÄÔöÇ¿µÄÔªÎļþµÄÏÔʾ¸ñʽ¡£
CF_DSPMETAFILEPICT ÓÐÒ»¸ö˽ÓиñʽµÄԪͼÏÔʾ¸ñʽ¡£
CF_DSPTEXT ÓÐÒ»¸ö˽ÓиñʽµÄÎı¾ÏÔʾ¸ñʽ¡£
CF_ENHMETAFILE Ò»¸öÔöÇ¿µÄÔªÎļþ£¨HENHMETAFILE½á¹¹£©µÄ¾ä±ú¡£
CF_GDIOBJFIRSTµ½ CF_GDIOBJLAST Ó¦ÓÃÈí¼þ¶¨Òå
µÄһϵÁÐGDI¶ÔÏóµÄÕûÐÍÖµ¡£
CF_HDROP Ò»¸öHDROPÀàÐ͵ľä±ú£¬ÓÃÀ´±êʶһÁÐÎļþ¡£
CF_METAFILEPICT Ò»¸öʹÓÃMETAFILEPICT½á¹¹¶¨ÒåµÄԪͼÎļþµÄ¾ä±ú¡£
CF_OEMTEXT Ô¤¶¨ÒåµÄ×Ö·ûµÄÎı¾¸ñʽ£¬Ã¿Ò»Ðж¼°ó¶¨
Ò»¸öCR-LF×Ö·û£¬²¢ÇÒÓÃÒ»¸ö¿Õ×Ö·û±íʾÊý¾Ý½áβ¡£
CF_OWNERDISPLAY ¼ôÌù°åÓµÓÐÕßµÄÏÔʾ¸ñʽ£¬
¼ôÌù°åµÄÓµÓÐÕß±ØÐëÏÔʾ²¢ÇÒ¸üмôÌù°åµÄ¹Û²ìÆ÷´°¿Ú£¬
²¢ÇÒ½ÓÊÕWM_ASKCBFORMATNAME¡¢WM_HSCROLLCLIPBOARD¡¢
WM_PAINTCLIPBOARD¡¢WM_SIZECLIPBOARDÒÔ¼°
WM_VSCROLLCLIPBOARDµÈÏûÏ¢£¬hMem²ÎÊý±ØÐèΪNULL¡£
CF_PALETTE µ÷É«°åµÄ¾ä±ú
CF_PRIVATEFIRSTµ½CF_PRIVATELAST ˽ÓеļôÌù°å¸ñʽµÄÕûÐÍÖµ¡£
CF_RIFF Äܹ»Ìá½»±ÈCF_WAVE±ê×¼²¨±íÎļþ¸ñʽ¸üΪ¸´ÔÓµÄÒôƵÊý¾Ý
CF_SYLK ΢Èí¹«Ë¾µÄSYLK£¨Symbolic Link£¬·ûºÅÁ´½Ó£©¸ñʽ
CF_TEXT Îı¾¸ñʽ
CF_WAVE ʹÓÃÒ»ÖÖ±ê×¼²¨±íÎļþ¸ñʽÈç11kHz»ò22kHzµÈ
PCM£¨Pulse Code Modulation£¬Âö³å±àÂëµ÷ÖÆÆ÷£©Ìá½»ÒôƵÊý¾Ý¡£
CF_TIFF TIFFͼÐθñʽ
CF_UNICODETEXT UnicodeÎı¾¸ñʽ£¨
×¢Ò⣺½öÊÊÓÃÓÚWindows NT»òWindows 2000²Ù×÷ϵͳ£©
±í1¡¡³£Óõıê×¼¼ôÌù°å¸ñʽ
Òª±àдһ¸öʵÏÖ¼ôÇк͸´ÖÆÃüÁîµÄº¯Êý£¬¾ÍÒªÔÚÄãµÄÓ¦ÓóÌÐòÖÐʵÏÖÑ¡¶¨²Ù×÷£»Òª±àдһ¸öʵÏÖÕ³ÌùÃüÁîµÄº¯Êý£¬¾ÍÐèÒªÇëÇó¼ôÌù°åÀ´¼ì²âËüÊÇ·ñ°üº¬ÄãµÄÓ¦ÓóÌÐòÄܹ»Ö§³ÖµÄÊý¾Ý¡£ÏÂÃæµÄ´úÂëʵÏÖÁ˸´ÖÆÃüÁÆäËüʵÏÖ¿É·ÂÕÕ½øÐУ¬Ôڴ˲»ÔÙ׸ÑÔ¡£
³ÌÐòʾÀý£º
void CMyView::OnEditCopy()
{
if ( !OpenClipboard() )
{
AfxMessageBox( "ÎÞ·¨´ò¿ª¼ôÌù°å" );
return;
}
// ɾ³ýĿǰ¼ôÌù°åµÄÄÚÈÝ
if( !EmptyClipboard() )
{
AfxMessageBox( "ÎÞ·¨Çå³ý¼ôÌù°å" );
return;
}
// »ñȡѡ¶¨µÄÊý¾Ý
// ¼ì²éÊÇ·ñΪ¼ôÌù°åÖ§³ÖµÄ¸ñʽ
if ( ::SetClipboardData( CF_??, hData ) == NULL )
// CF_??Ö¸¶¨Á˼ôÌù°åÖÐÊý¾ÝµÄ¸ñʽ£¬
//±í1ÁгöÁ˱ê×¼µÄ¼ôÌù°å¸ñʽ
{
AfxMessageBox( "ÎÞ·¨½«Êý¾Ý¸´ÖƵ½¼ôÌù°åµ±ÖÐ" );
CloseClipboard();
return;
}
// ...
CloseClipboard();
}
ËÄ¡¢Ê¹ÓÃOLE¼ôÌù°å»úÖÆ
Ê×ÏȾٸöÀý×Ó¸øÄãһЩ¹ØÓÚOLE¼ôÌù°åµÄ¸ÐÐÔÈÏʶ£¬Í¬Ê±ËµÃ÷ÄãÐèҪΪOLE¼ôÌù°å×öÄÄЩÊÂÇ飺Microsoft ExcelΪ¹¤×÷±í×¢²áÁËÒ»¸ö×Ô¶¨ÒåµÄ¸ñʽ£¬Õâ¸ö¸ñʽÄܹ»±ÈÆäËü±ê×¼¸ñʽ£¨Èçλͼ»ò´¿Îı¾µÈ£©Ìṩ¸ü¶àµÄÐÅÏ¢¡£µ±´ËÊý¾Ý±»Õ³Ìùµ½Ò»¸öÖ§³Ö¹¤×÷±íµÄ³ÌÐò£¨±ÈÈçLotus
´ÓÉÏÀý×ܽáһϣ¬ÎÒÃÇÓ¦µ±×÷µÄÊÂÇé´óÖÂÓУº×¢²á×Ô¶¨ÒåµÄ¸ñʽ¡¢´«Êä¸ñʽµ½¼ôÌù°åÉÏÒÔ¼°ÊµÏÖ¸´ÖÆ¡¢¼ôÇкÍÕ³Ìù¡£
×¢²á×Ô¶¨Òå¸ñʽ
OLE¼ôÌù°åÖеÄÊý¾Ý´æÔÚÓÚ¶àÖÖ¸ñʽ¡£µ±Ò»¸öÓû§Ñ¡Ôñ´Ó¼ôÌù°åÕ³ÌùÊý¾Ýʱ£¬Ó¦ÓóÌÐòÓ¦µ±Äܹ»Ñ¡ÔñʹÓúÎÖÖ¸ñʽճÌùÊý¾Ý¡£Ó¦ÓóÌÐòÓ¦µ±Ìṩ´ó²¿·Ö¸ñʽµÄÐÅÏ¢£¬³ý·ÇÓû§Ö¸¶¨Ê¹ÓÃijһÖÖÌØ¶¨¸ñʽճÌù£¨±ÈÈçÖ»Õ³ÌùÎÄ×Ö»òÖ»Õ³ÌùͼƬµÈ£©¡£
Windows¶¨ÒåÁ˺ܶàÄܹ»Í¨¹ý¼ôÌù°å´«ÊäµÄ±ê×¼¸ñʽ£¨¼û±í1£©£¬OLEÒ²¶¨ÒåÁ˺ܶàÌØÊâµÄ¸ñʽ¡£Ó¦ÓóÌÐò¿ÉÒÔͨ¹ý»ñÈ¡¸ü¼ÓÏêϸµÄÐÅÏ¢À´×¢²áËûÃÇ×Ô¼ºµÄ¼ôÌù°å¸ñʽ¡£Õâ¿ÉÒÔͨ¹ýʹÓÃWin32 APIº¯ÊýRegisterClipboardFormatÀ´ÊµÏÖ£º
RegisterClipboardFormat ( lpszFormat );
˵Ã÷ lpzxFormatÊÇÖ¸ÏòÒ»¸ö×Ö·û´®µÄÖ¸Õ룬ÓÃÒÔÃüÃû×Ô¶¨ÒåµÄ¸ñʽ¡£¸Ãº¯Êý·µ»ØÎÞ·ûºÅÕûÊý£¬¸ÃÊý¼´Îª¸ñʽµÄIDºÅ
ÔÚ×¢²áÁË×Ô¶¨ÒåµÄ¸ñʽ֮ºó£¬±ã¿ÉÒÔʹÓÃRegisterClipboardFormatº¯ÊýµÄ·µ»ØÖµÀ´±êʶ²¢Ê¹Óøøñʽ¡£
½«¸ñʽ´«Êäµ½¼ôÌù°åÉÏ
ÒªÔö¼Ó¸ü¶àµÄ¸ñʽµ½¼ôÌù°åÉÏ£¬Äã±ØÐë´ÓCOleClientItem»òCOleServerItem¼Ì³ÐÒ»¸öÀ࣬²¢ÇÒÔÚ¸ÃÀàÖÐÖØÔØOnGetClipboardDataº¯Êý¡£ÔÚÕâ¸öº¯ÊýÖУ¬ÄãÓ¦µ±×ö°´ÕÕÏÂÁв½ÖèÍê³É¡£
½«¸ü¶àµÄ¸ñʽ·ÅÖÃÔÚ¼ôÌù°åÉÏ
1. ½¨Á¢Ò»¸öCOleDataSource¶ÔÏó¡£
2. ´«µÝ¸ÃÊý¾ÝÔ´µ½Ò»¸öº¯Êý£¬Óøú¯Êýͨ¹ý·ÃÎÊCOleDataSource::CacheGlobalDataº¯ÊýÀ´½«ÄãµÄÊý¾Ý¸ñʽÌí¼Óµ½Ö§³ÖµÄ¸ñʽÁÐ±í¡£
3. ͨ¹ý·ÃÎÊCOleDataSource::CacheGlobalData£¬ÎªÃ¿Ò»¸öÄãÏòÖ§³ÖµÄ¸ñʽÌí¼Ó±ê×¼¸ñʽ¡£
³ÌÐòʾÀý£º
COleDataSource* CMyItem::OnGetClipboardData(
BOOL bIncludeLink,LPPOINT pptOffset, LPSIZE pSize)
{
ASSERT_VALID(this);
if (m_pServerNode == NULL)
return NULL;
COleDataSource* pDataSource =
new COleDataSource;
TRY
{
GetNativeClipboardData(pDataSource);
GetClipboardData(pDataSource, bIncludeLink,
pptOffset, pSize);
}
CATCH_ALL(e)
{
delete pDataSource;
THROW_LAST();
}
END_CATCH_ALL
ASSERT_VALID(pDataSource);
return pDataSource;
}
|
|||
| ¡¤ ·ÓÉÆ÷Ä£ÄâÆ÷ ¡¤ AIX²Ù×÷ϵͳ¹ÜÀíÓ¦Óã¨.. ¡¤ ˼¿ÆÂ·ÓÉÆ÷ÅäÖà ¡¤ ·ÓÉÆ÷×éÍø½â¾ö·½°¸ ¡¤ ·ÓÉÆ÷ÃÜÂë»Ö¸´ ¡¤ ÎÞÏß·ÓÉÆ÷¹ÊÕÏ´¦Àí ¡¤ ·ÓɹÊÕÏ´¦ÀíÊÖ²á ¡¤ ·ÓÉÆ÷·ÃÎÊ¿ØÖÆÁбí(AC.. |
¡¤ ·ÓÉÆ÷µÄ°²È«ÅäÖÃÓë°².. ¡¤ ÎÞÏß·ÓÉÆ÷ÅäÖà ¡¤ ·ÓÉÆ÷¼¼ÇÉ ¡¤ »ªÎªÂ·ÓÉÆ÷ÅäÖà ¡¤ ·ÓÉÆ÷ÅäÖûù´¡ ¡¤ ·ÓÉÆ÷IOS ¡¤ ·ÓÉÆ÷²úÆ·µ¼¹º ¡¤ ÆäËü·ÓÉÐÒéרÀ¸ |
||
|
|||
| ¡¤ Java»ù´¡½Ì³Ì ¡¤ VPN¼¼Êõ ¡¤ SQL Server 2005È«½â ¡¤ ARP¹¥»÷·À·¶Óë½â¾ö·½°¸ ¡¤ SOA ÃæÏò·þÎñ¼Ü¹¹ ¡¤ SQL Server 2005È«½â ¡¤ Java±à³Ì¿ª·¢ÊÖ²á ¡¤ Èý²ã½»»»¼¼ÊõרÌâ |
¡¤ SQL ServerÈëÃŵ½¾«Í¨ ¡¤ Windows Server 2003Æó.. ¡¤ WindowsÔ¶³Ì×ÀÃæÓ¦Óà ¡¤ C#¼¼Êõ¿ª·¢Ö¸ÄÏ ¡¤ VPN¼¼Êõ ¡¤ Solaris 10 ÅäÖùÜÀí ¡¤ C#¼¼Êõ¿ª·¢Ö¸ÄÏ ¡¤ Windows²Ù×÷ϵͳ°²×° |
||
|
|||
| ¡¤ VPN¼¼Êõ ¡¤ ARP¹¥»÷·À·¶Óë½â¾ö·½°¸ ¡¤ SQL Server 2005È«½â ¡¤ Java»ù´¡½Ì³Ì ¡¤ SQL ServerÈëÃŵ½¾«Í¨ ¡¤ SQL Server 2005È«½â ¡¤ SOA ÃæÏò·þÎñ¼Ü¹¹ ¡¤ Java±à³Ì¿ª·¢ÊÖ²á |
¡¤ C#¼¼Êõ¿ | ||