Makale numarası: 274308 - Son Gözden Geçirme: 29 Haziran 2004 Salı - Gözden geçirme: 1.4

Nasıl HTML kodu Visual C++ kullanarak panoya eklenir.

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Özet

Bu makalede, köprü metni biçimlendirme dili (HTML), Visual C++ kullanarak Microsoft Windows panosuna ekleme gösterilmiştir. Ayrıca, kullanabileceğiniz örnek bir işlev içerir uygulamalarınızda basitleştirmek için.

Daha fazla bilgi

HTML HTML biçimi (Microsoft Excel, Microsoft Word veya diğer Microsoft Office uygulamaları gibi diğer uygulamalara veri sağlamak için kullanabileceğiniz CF_HTML) adlı kendi Pano biçimi vardır.

CF_HTML tümüyle bir parçası, bir içerik içinde bir açıklama ve bir içerik içeren bir metin tabanlı biçimidir. Panoya göndermek için veri oluşturduğunuzda, verileri Pano sürümü ve içeriği ve parça uzaklıklar belirtmek için bir açıklama eklemeniz gerekir. Farklarını hesaplamak için zor bir parçası olabilir. Ancak, bu görevi kolaylaştırmak için aşağıdaki yordamı kullanabilirsiniz:
// CopyHtml() - Copies given HTML to the clipboard.
// The HTML/BODY blanket is provided, so you only need to
// call it like CallHtml("<b>This is a test</b>");

void CopyHTML(char *html) {
    // Create temporary buffer for HTML header...
    char *buf = new char [400 + strlen(html)];
    if(!buf) return;

    // Get clipboard id for HTML format...
    static int cfid = 0;
    if(!cfid) cfid = RegisterClipboardFormat("HTML Format");

    // Create a template string for the HTML header...
    strcpy(buf,
        "Version:0.9\r\n"
        "StartHTML:00000000\r\n"
        "EndHTML:00000000\r\n"
        "StartFragment:00000000\r\n"
        "EndFragment:00000000\r\n"
        "<html><body>\r\n"
        "<!--StartFragment -->\r\n");

    // Append the HTML...
    strcat(buf, html);
    strcat(buf, "\r\n");
    // Finish up the HTML format...
    strcat(buf,
        "<!--EndFragment-->\r\n"
        "</body>\r\n"
        "</html>");

    // Now go back, calculate all the lengths, and write out the
    // necessary header information. Note, wsprintf() truncates the
    // string when you overwrite it so you follow up with code to replace
    // the 0 appended at the end with a '\r'...
    char *ptr = strstr(buf, "StartHTML");
    wsprintf(ptr+10, "%08u", strstr(buf, "<html>") - buf);
    *(ptr+10+8) = '\r';

    ptr = strstr(buf, "EndHTML");
    wsprintf(ptr+8, "%08u", strlen(buf));
    *(ptr+8+8) = '\r';

    ptr = strstr(buf, "StartFragment");
    wsprintf(ptr+14, "%08u", strstr(buf, "<!--StartFrag") - buf);
    *(ptr+14+8) = '\r';

    ptr = strstr(buf, "EndFragment");
    wsprintf(ptr+12, "%08u", strstr(buf, "<!--EndFrag") - buf);
    *(ptr+12+8) = '\r';

    // Now you have everything in place ready to put on the
    // clipboard.

    // Open the clipboard...
    if(OpenClipboard(0)) {
        
        // Empty what's in there...
        EmptyClipboard();
        
        // Allocate global memory for transfer...
        HGLOBAL hText = GlobalAlloc(GMEM_MOVEABLE |GMEM_DDESHARE, strlen(buf)+4);
        
        // Put your string in the global memory...
        char *ptr = (char *)GlobalLock(hText);
        strcpy(ptr, buf);
        GlobalUnlock(hText);
        
        ::SetClipboardData(cfid, hText);
        
        CloseClipboard();
        // Free memory...
        GlobalFree(hText);
        
    }

    // Clean up...
    delete [] buf;
}
				
HTML kod parçası panoya kopyalamak için bu işlevi kullandığınızda, aşağıdaki gibi görünebilir:
    char *html = 
        "<b>This is a test</b><hr>"
        "<li>entry 1"
        "<li>entry 2";
    CopyHTML(html);
				

Ek Not

HTML kodu panoya gönderen bir yaklaşım kullanarak Office Otomasyonu istemciler için özellikle yararlı olabilir. Örneğin, biçimlendirilmiş bir veri hücreleri için Microsoft Excel veya Microsoft Word içinde paragraf oluşturmak için gereksinim duyduğu bir otomasyon istemci varsa, HTML kodu verilerde oluşturmak panoya göndermeden ve uygulamaya yapıştırın. Bu yöntemi kullanarak, işlem dışı aramalar <a0>Otomasyon</a0> istemciye sayısını azaltabilir.

Referanslar

HTML Pano biçimi özellikleri hakkında daha fazla bilgi için <a0></a0>, MSDN "HTML Pano biçimi" konusuna bakın:
http://msdn.microsoft.com/en-us/library/aa767917.aspx (http://msdn.microsoft.com/en-us/library/aa767917.aspx)

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C++ 6.0 Professional Edition
Anahtar Kelimeler: 
kbmt kbclipboard kbhowto kbhtml KB274308 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:274308  (http://support.microsoft.com/kb/274308/en-us/ )