Bagikan melalui


CComBSTR Kelas

Kelas ini adalah pembungkus untuk BSTRs.

Sintaks

class CComBSTR

Anggota

Konstruktor Publik

Nama Deskripsi
CComBSTR::CComBSTR Konstruktor.
CComBSTR::~CComBSTR Destruktor.

Metode Publik

Nama Deskripsi
CComBSTR::Append Menambahkan string ke m_str.
CComBSTR::AppendBSTR BSTR Menambahkan ke m_str.
CComBSTR::AppendBytes Menambahkan jumlah byte tertentu ke m_str.
CComBSTR::ArrayToBSTR BSTR Membuat dari karakter pertama setiap elemen dalam safearray dan melampirkannya ke CComBSTR objek.
CComBSTR::AssignBSTR BSTR Menetapkan ke m_str.
CComBSTR::Attach Melampirkan BSTR ke CComBSTR objek.
CComBSTR::BSTRToArray Membuat safearray satu dimensi berbasis nol, di mana setiap elemen array adalah karakter dari CComBSTR objek.
CComBSTR::ByteLength Mengembalikan panjang m_str dalam byte.
CComBSTR::Copy Mengembalikan salinan .m_str
CComBSTR::CopyTo Mengembalikan salinan m_str melalui [out] parameter
CComBSTR::Detach Mencopot m_str dari CComBSTR objek.
CComBSTR::Empty m_strGratis .
CComBSTR::Length Mengembalikan panjang m_str.
CComBSTR::LoadString Memuat sumber daya string.
CComBSTR::ReadFromStream BSTR Memuat objek dari aliran.
CComBSTR::ToLower Mengonversi string menjadi huruf kecil.
CComBSTR::ToUpper Mengonversi string menjadi huruf besar.
CComBSTR::WriteToStream m_str Menyimpan ke aliran.

Operator Publik

Nama Deskripsi
CComBSTR::operator BSTR Melemparkan CComBSTR objek ke BSTR.
CComBSTR::operator ! Mengembalikan TRUE atau FALSE, tergantung pada apakah m_str NULL.
CComBSTR::operator != Membandingkan CComBSTR dengan string.
CComBSTR::operator & Mengembalikan alamat .m_str
CComBSTR::operator += CComBSTR Menambahkan ke objek.
CComBSTR::operator < Membandingkan CComBSTR dengan string.
CComBSTR::operator = Menetapkan nilai ke m_str.
CComBSTR::operator == Membandingkan CComBSTR dengan string.
CComBSTR::operator > Membandingkan CComBSTR dengan string.

Anggota Data Publik

Nama Deskripsi
CComBSTR::m_str Berisi yang BSTR terkait dengan CComBSTR objek.

Keterangan

Kelas CComBSTR adalah pembungkus untuk BSTRs, yang merupakan string berawalan panjang. Panjang disimpan sebagai bilangan bulat di lokasi memori sebelum data dalam string.

BSTR dihentikan null setelah karakter terakhir dihitung tetapi mungkin juga berisi karakter null yang disematkan dalam string. Panjang string ditentukan oleh jumlah karakter, bukan karakter null pertama.

Catatan

Kelas ini CComBSTR menyediakan sejumlah anggota (konstruktor, operator penugasan, dan operator perbandingan) yang mengambil string ANSI atau Unicode sebagai argumen. Versi ANSI dari fungsi-fungsi ini kurang efisien daripada rekan-rekan Unicode mereka karena string Unicode sementara sering dibuat secara internal. Untuk efisiensi, gunakan versi Unicode jika memungkinkan.

Catatan

Karena perilaku pencarian yang ditingkatkan yang diterapkan di Visual Studio .NET, kode seperti bstr = L"String2" + bstr;, yang mungkin telah dikompilasi dalam rilis sebelumnya, seharusnya diimplementasikan sebagai bstr = CStringW(L"String2") + bstr.

Untuk daftar perhatian saat menggunakan CComBSTR, lihat Pemrograman dengan CComBSTR.

Persyaratan

Header: atlbase.h

CComBSTR::Append

Menambahkan salah satu lpsz atau anggota BSTR dari bstrSrc ke m_str.

HRESULT Append(const CComBSTR& bstrSrc) throw();
HRESULT Append(wchar_t ch) throw();
HRESULT Append(char ch) throw();
HRESULT Append(LPCOLESTR lpsz) throw();
HRESULT Append(LPCSTR lpsz) throw();
HRESULT Append(LPCOLESTR lpsz, int nLen) throw();

Parameter

bstrSrc
[di] Objek CComBSTR untuk ditambahkan.

ch
[di] Karakter untuk ditambahkan.

lpsz
[di] String karakter yang dihentikan nol untuk ditambahkan. Anda dapat meneruskan string Unicode melalui LPCOLESTR kelebihan beban atau string ANSI melalui LPCSTR versi .

nLen
[di] Jumlah karakter dari lpsz untuk ditambahkan.

Tampilkan Nilai

S_OK pada keberhasilan, atau nilai kesalahan standar HRESULT apa pun.

Keterangan

String ANSI akan dikonversi ke Unicode sebelum ditambahkan.

Contoh

enum { urlASP, urlHTM, urlISAPI } urlType;
urlType = urlASP;

CComBSTR bstrURL = OLESTR("http://SomeSite/");
CComBSTR bstrDEF = OLESTR("/OtherSite");
CComBSTR bstrASP = OLESTR("default.asp");

CComBSTR bstrTemp;
HRESULT hr;

switch (urlType)
{
case urlASP:
   // bstrURL is 'http://SomeSite/default.asp'
   hr = bstrURL.Append(bstrASP);
   break;

case urlHTM:
   // bstrURL is 'http://SomeSite/default.htm'
   hr = bstrURL.Append(OLESTR("default.htm"));
   break;

case urlISAPI:
   // bstrURL is 'http://SomeSite/default.dll?func'
   hr = bstrURL.Append(OLESTR("default.dll?func"));
   break;

default:
   // bstrTemp is 'http://'
   hr = bstrTemp.Append(bstrURL, 7);
   // bstrURL is 'http://OtherSite'
   if (hr == S_OK)
       hr = bstrTemp.Append(bstrDEF);
   bstrURL = bstrTemp;

   break;
}

CComBSTR::AppendBSTR

Menambahkan yang ditentukan BSTR ke m_str.

HRESULT AppendBSTR(BSTR p) throw();

Parameter

p
[di] A BSTR untuk ditambahkan.

Tampilkan Nilai

S_OK pada keberhasilan, atau nilai kesalahan standar HRESULT apa pun.

Keterangan

Jangan meneruskan string karakter lebar biasa ke metode ini. Kompiler tidak dapat menangkap kesalahan dan kesalahan run time akan terjadi.

Contoh

CComBSTR bstrPre(OLESTR("Hello "));
CComBSTR bstrSuf(OLESTR("World!"));
HRESULT hr;

// Appends "World!" to "Hello "
hr = bstrPre.AppendBSTR(bstrSuf);

// Displays a message box with text "Hello World!"
::MessageBox(NULL, CW2CT(bstrPre), NULL, MB_OK);   

CComBSTR::AppendBytes

Menambahkan jumlah byte yang ditentukan ke m_str tanpa konversi.

HRESULT AppendBytes(const char* lpsz, int nLen) throw();

Parameter

lpsz
[di] Penunjuk ke array byte untuk ditambahkan.

p
[di] Jumlah byte yang akan ditambahkan.

Tampilkan Nilai

S_OK pada keberhasilan, atau nilai kesalahan standar HRESULT apa pun.

Contoh

CComBSTR bstrPre(OLESTR("Hello "));
HRESULT hr;

// Appends "Wo" to "Hello " (4 bytes == 2 characters)
hr = bstrPre.AppendBytes(reinterpret_cast<char*>(OLESTR("World!")), 4);

// Displays a message box with text "Hello Wo"
::MessageBox(NULL, CW2CT(bstrPre), NULL, MB_OK);   

CComBSTR::ArrayToBSTR

Membebaskan string yang ada yang dipegang dalam CComBSTR objek, lalu membuat BSTR dari karakter pertama dari setiap elemen dalam safearray dan melampirkannya ke CComBSTR objek.

HRESULT ArrayToBSTR(const SAFEARRAY* pSrc) throw();

Parameter

pSrc
[di] Safearray yang berisi elemen yang digunakan untuk membuat string.

Tampilkan Nilai

S_OK pada keberhasilan, atau nilai kesalahan standar HRESULT apa pun.

CComBSTR::AssignBSTR

BSTR Menetapkan ke m_str.

HRESULT AssignBSTR(const BSTR bstrSrc) throw();

Parameter

bstrSrc
[di] BSTR untuk ditetapkan ke objek saat ini CComBSTR .

Tampilkan Nilai

S_OK pada keberhasilan, atau nilai kesalahan standar HRESULT apa pun.

CComBSTR::Attach

Melampirkan BSTR ke CComBSTR objek dengan mengatur m_str anggota ke src.

void Attach(BSTR src) throw();

Parameter

src
[di] untuk BSTR melampirkan ke objek.

Keterangan

Jangan meneruskan string karakter lebar biasa ke metode ini. Kompiler tidak dapat menangkap kesalahan dan kesalahan run time akan terjadi.

Catatan

Metode ini akan menegaskan jika m_str bukan- NULL.

Contoh

// STDMETHOD(BSTRToUpper)(/*[in, out]*/ BSTR bstrConv);
STDMETHODIMP InplaceBSTRToUpper(BSTR bstrConv)
{
   // Assign bstrConv to m_str member of CComBSTR
   CComBSTR bstrTemp;
   bstrTemp.Attach(bstrConv); 

   // Make sure BSTR is not NULL string
   if (!bstrTemp)
        return E_POINTER;

   // Make string uppercase 
   HRESULT hr;
   hr = bstrTemp.ToUpper();
   if (hr != S_OK)
       return hr;

   // Set m_str to NULL, so the BSTR is not freed
   bstrTemp.Detach(); 

   return S_OK; 
}

CComBSTR::BSTRToArray

Membuat safearray satu dimensi berbasis nol, di mana setiap elemen array adalah karakter dari CComBSTR objek.

HRESULT BSTRToArray(LPSAFEARRAY* ppArray) throw();

Parameter

ppArray
[out] Penunjuk ke safearray yang digunakan untuk menyimpan hasil fungsi.

Tampilkan Nilai

S_OK pada keberhasilan, atau nilai kesalahan standar HRESULT apa pun.

CComBSTR::ByteLength

Mengembalikan jumlah byte dalam m_str, tidak termasuk karakter null yang dihentikan.

unsigned int ByteLength() const throw();

Tampilkan Nilai

Panjang m_str anggota dalam byte.

Keterangan

Mengembalikan 0 jika m_str adalah NULL.

Contoh

// string with 11 chars (22 bytes)
CComBSTR bstrTemp(OLESTR("Hello World"));

unsigned int len = bstrTemp.ByteLength();

ATLASSERT(len == 22);   

CComBSTR::CComBSTR

Konstruktor. Konstruktor default mengatur m_str anggota ke NULL.

CComBSTR() throw();
CComBSTR(const CComBSTR& src);
CComBSTR(REFGUID  guid);
CComBSTR(int nSize);
CComBSTR(int nSize, LPCOLESTR sz);
CComBSTR(int nSize, LPCSTR sz);
CComBSTR(LPCOLESTR pSrc);
CComBSTR(LPCSTR pSrc);
CComBSTR(CComBSTR&& src) throw(); // (Visual Studio 2017)

Parameter

nSize
[di] Jumlah karakter yang akan disalin dari sz atau ukuran awal dalam karakter untuk CComBSTR.

sz
[di] String yang akan disalin. Versi Unicode menentukan LPCOLESTR; versi ANSI menentukan LPCSTR.

pSrc
[di] String yang akan disalin. Versi Unicode menentukan LPCOLESTR; versi ANSI menentukan LPCSTR.

src
[di] Sebuah CComBSTR objek.

guid
[di] Referensi ke GUID struktur.

Keterangan

Konstruktor salinan diatur m_str ke salinan anggota BSTR dari src. REFGUID Konstruktor mengonversi GUID menjadi string menggunakan StringFromGUID2 dan menyimpan hasilnya.

Konstruktor lain diatur m_str ke salinan string yang ditentukan. Jika Anda meneruskan nilai untuk nSize, maka hanya nSize karakter yang akan disalin, diikuti oleh karakter null yang mengakhiri.

CComBSTR mendukung semantik pemindahan. Anda dapat menggunakan konstruktor pemindahan (konstruktor yang mengambil referensi rvalue (&&) untuk membuat objek baru yang menggunakan data dasar yang sama dengan objek lama yang Anda teruskan sebagai argumen, tanpa overhead menyalin objek.

Destruktor membebaskan string yang ditunjukkan oleh m_str.

Contoh

CComBSTR bstr1;   // BSTR points to NULL
bstr1 = "Bye";    // initialize with assignment operator
                  // ANSI string is converted to wide char

OLECHAR* str = OLESTR("Bye bye!");  // wide char string of length 5
int len = (int)wcslen(str);
CComBSTR bstr2(len + 1);// unintialized BSTR of length 6
wcsncpy_s(bstr2.m_str, bstr2.Length(), str, len); // copy wide char string to BSTR

CComBSTR bstr3(5, OLESTR("Hello World")); // BSTR containing 'Hello', 
                                          // input string is wide char
CComBSTR bstr4(5, "Hello World");         // same as above, input string 
                                          // is ANSI

CComBSTR bstr5(OLESTR("Hey there")); // BSTR containing 'Hey there', 
                                     // input string is wide char
CComBSTR bstr6("Hey there");         // same as above, input string 
                                     // is ANSI

CComBSTR bstr7(bstr6);     // copy constructor, bstr7 contains 'Hey there'   

CComBSTR::~CComBSTR

Destruktor.

~CComBSTR();

Keterangan

Destruktor membebaskan string yang ditunjukkan oleh m_str.

CComBSTR::Copy

Mengalokasikan dan mengembalikan salinan m_str.

BSTR Copy() const throw();

Tampilkan Nilai

Salinan m_str anggota. Jika m_str adalah NULL, mengembalikan NULL.

Contoh

CComBSTR m_bstrURL;    // BSTR representing a URL

// put_URL is the put method for the URL property. 
STDMETHOD(put_URL)(BSTR strURL)
{
    ATLTRACE(_T("put_URL\n"));

    // free existing string in m_bstrURL & make a copy 
    // of strURL pointed to by m_bstrURL
    m_bstrURL = strURL;
    return S_OK;
}

// get_URL is the get method for the URL property. 
STDMETHOD(get_URL)(BSTR* pstrURL)
{
    ATLTRACE(_T("get_URL\n"));

    // make a copy of m_bstrURL pointed to by pstrURL
    *pstrURL = m_bstrURL.Copy(); // See CComBSTR::CopyTo
    return S_OK;
}

CComBSTR::CopyTo

Mengalokasikan dan mengembalikan salinan m_str melalui parameter .

HRESULT CopyTo(BSTR* pbstr) throw();

HRESULT CopyTo(VARIANT* pvarDest) throw();

Parameter

pbstr
[out] Alamat untuk mengembalikan string yang BSTR dialokasikan oleh metode ini.

pvarDest
[out] Alamat untuk mengembalikan string yang VARIANT dialokasikan oleh metode ini.

Tampilkan Nilai

Nilai standar HRESULT yang menunjukkan keberhasilan atau kegagalan salinan.

Keterangan

Setelah memanggil metode ini, yang VARIANT ditujuk oleh pvarDest akan berjenis VT_BSTR.

Contoh

CComBSTR m_bstrURL; // BSTR representing a URL

// get_URL is the get method for the URL property. 
STDMETHOD(get_URL)(BSTR* pstrURL)
{
   // Make a copy of m_bstrURL and return it via pstrURL
   return m_bstrURL.CopyTo(pstrURL);
}

CComBSTR::Detach

m_str Melepaskan dari CComBSTR objek dan mengatur m_str ke NULL.

BSTR Detach() throw();

Tampilkan Nilai

Yang BSTR terkait dengan CComBSTR objek.

Contoh

// Method which converts bstrIn to uppercase 
STDMETHODIMP BSTRToUpper(BSTR bstrIn, BSTR* pbstrOut)
{ 
    if (bstrIn == NULL || pbstrOut == NULL) 
        return E_POINTER; 

    // Create a temporary copy of bstrIn
    CComBSTR bstrTemp(bstrIn); 

    if (!bstrTemp) 
        return E_OUTOFMEMORY; 

    // Make string uppercase
    HRESULT hr;
    hr = bstrTemp.ToUpper();
    if (hr != S_OK)
        return hr;
    
    // Return m_str member of bstrTemp 
    *pbstrOut = bstrTemp.Detach(); 

    return S_OK; 
}

CComBSTR::Empty

m_str Membebaskan anggota.

void Empty() throw();

Contoh

CComBSTR bstr(OLESTR("abc"));

// Calls SysFreeString to free the BSTR
bstr.Empty();
ATLASSERT(bstr.Length() == 0);   

CComBSTR::Length

Mengembalikan jumlah karakter dalam m_str, tidak termasuk karakter null yang dihentikan.

unsigned int Length() const throw();

Tampilkan Nilai

Panjang m_str anggota.

Contoh

// string with 11 chars
CComBSTR bstrTemp(OLESTR("Hello World"));

unsigned int len = bstrTemp.Length();

ATLASSERT(len == 11);

CComBSTR::LoadString

Memuat sumber daya string yang ditentukan oleh nID dan menyimpannya di objek ini.

bool LoadString(HINSTANCE hInst, UINT nID) throw();
bool LoadString(UINT nID) throw();

Parameter

Lihat LoadString di Windows SDK.

Tampilkan Nilai

Mengembalikan TRUE jika string berhasil dimuat; jika tidak, mengembalikan FALSE.

Keterangan

Fungsi pertama memuat sumber daya dari modul yang diidentifikasi oleh Anda melalui hInst parameter . Fungsi kedua memuat sumber daya dari modul sumber daya yang terkait dengan CComModuleobjek -turunan yang digunakan dalam proyek ini.

Contoh

CComBSTR bstrTemp;

// IDS_PROJNAME proj name stored as resource in string table
bstrTemp.LoadString(IDS_PROJNAME);

// the above is equivalent to:
// bstrTemp.LoadString(_Module.m_hInstResource, IDS_PROJNAME);

// display message box w/ proj name as title & text
::MessageBox(NULL, CW2CT(bstrTemp), CW2CT(bstrTemp), MB_OK);   

CComBSTR::m_str

Berisi yang BSTR terkait dengan CComBSTR objek.

BSTR m_str;

Contoh

CComBSTR GuidToBSTR(REFGUID guid) 
{
    // 39 - length of string representation of GUID + 1
    CComBSTR b(39); 

    // Convert GUID to BSTR
    // m_str member of CComBSTR is of type BSTR. When BSTR param 
    // is required, pass the m_str member explicitly or use implicit 
    // BSTR cast operator.
    int nRet = StringFromGUID2(guid, b.m_str, 39); 

    // Above equivalent to:
    // int nRet = StringFromGUID2(guid, b, 39); 
    // implicit BSTR cast operator used for 2nd param

    // Both lines are equivalent to:
    // CComBSTR b(guid);
    // CComBSTR constructor can convert GUIDs

    ATLASSERT(nRet); 
    return b; 
}

CComBSTR::operator BSTR

Melemparkan CComBSTR objek ke BSTR.

operator BSTR() const throw();

Keterangan

Memungkinkan Anda meneruskan CComBSTR objek ke fungsi yang memiliki parameter [in BSTR ].

Contoh

Lihat contoh untuk CComBSTR::m_str.

CComBSTR::operator !

Memeriksa apakah BSTR string adalah NULL.

bool operator!() const throw();

Tampilkan Nilai

Mengembalikan TRUE jika anggota adalah NULL; jika tidak, FALSEm_str .

Keterangan

Operator ini hanya memeriksa NULL nilai, bukan untuk string kosong.

Contoh

// STDMETHOD(BSTRToUpper)(/*[in, out]*/ BSTR bstrConv);
STDMETHODIMP InplaceBSTRToUpper(BSTR bstrConv)
{
   // Assign bstrConv to m_str member of CComBSTR
   CComBSTR bstrTemp;
   bstrTemp.Attach(bstrConv); 

   // Make sure BSTR is not NULL string
   if (!bstrTemp)
        return E_POINTER;

   // Make string uppercase 
   HRESULT hr;
   hr = bstrTemp.ToUpper();
   if (hr != S_OK)
       return hr;

   // Set m_str to NULL, so the BSTR is not freed
   bstrTemp.Detach(); 

   return S_OK; 
}

CComBSTR::operator !=

Mengembalikan kebalikan logis dari operator ==.

bool operator!= (const CComBSTR& bstrSrc) const throw();
bool operator!= (LPCOLESTR pszSrc) const;
bool operator!= (LPCSTR pszSrc) const;
bool operator!= (int nNull) const throw();

Parameter

bstrSrc
[di] Sebuah CComBSTR objek.

pszSrc
[di] String yang dihentikan nol.

nNull
[di] Harus NULL.

Tampilkan Nilai

Mengembalikan TRUE jika item yang dibandingkan tidak sama dengan CComBSTR objek; jika tidak, mengembalikan FALSE.

Keterangan

CComBSTRs dibandingkan secara tekstual dalam konteks lokal default pengguna. Operator perbandingan akhir hanya membandingkan string yang terkandung dengan NULL.

CComBSTR::operator &

Mengembalikan alamat yang BSTR disimpan dalam m_str anggota.

BSTR* operator&() throw();

Keterangan

CComBstr operator & memiliki pernyataan khusus yang terkait dengannya untuk membantu mengidentifikasi kebocoran memori. Program akan menegaskan kapan anggota diinisialisasi m_str . Pernyataan ini dibuat untuk mengidentifikasi situasi di mana programmer menggunakan & operator untuk menetapkan nilai baru kepada m_str anggota tanpa membebaskan alokasi m_strpertama . Jika m_str sama dengan NULL, program mengasumsikan bahwa m_str belum dialokasikan. Dalam hal ini, program tidak akan menegaskan.

Pernyataan ini tidak diaktifkan secara default. Tentukan ATL_CCOMBSTR_ADDRESS_OF_ASSERT untuk mengaktifkan pernyataan ini.

Contoh

#define ATL_NO_CCOMBSTR_ADDRESS_OF_ASSERT

void MyInitFunction(BSTR* pbstr)
{
   ::SysReAllocString(pbstr, OLESTR("Hello World"));
   return;
}
CComBSTR bstrStr ;
// bstrStr is not initialized so this call will not assert.
MyInitFunction(&bstrStr); 

CComBSTR bstrStr2(OLESTR("Hello World"));
// bstrStr2 is initialized so this call will assert.
::SysReAllocString(&bstrStr2, OLESTR("Bye"));

CComBSTR::operator +=

Menambahkan string ke CComBSTR objek.

CComBSTR& operator+= (const CComBSTR& bstrSrc);
CComBSTR& operator+= (const LPCOLESTR pszSrc);

Parameter

bstrSrc
[di] Objek CComBSTR untuk ditambahkan.

pszSrc
[di] String yang dihentikan nol untuk ditambahkan.

Keterangan

CComBSTRs dibandingkan secara tekstual dalam konteks lokal default pengguna. Perbandingan LPCOLESTR dilakukan menggunakan memcmp pada data mentah di setiap string. Perbandingan LPCSTR dilakukan dengan cara yang sama setelah salinan pszSrc Unicode sementara dibuat. Operator perbandingan akhir hanya membandingkan string yang terkandung dengan NULL.

Contoh

CComBSTR bstrPre(OLESTR("Hello "));
CComBSTR bstrSuf(OLESTR("World!"));

// Appends "World!" to "Hello "
bstrPre += bstrSuf;

// Displays a message box with text "Hello World!"
::MessageBox(NULL, CW2CT(bstrPre), NULL, MB_OK);   

CComBSTR::operator <

Membandingkan CComBSTR dengan string.

bool operator<(const CComBSTR& bstrSrc) const throw();
bool operator<(LPCOLESTR pszSrc) const throw();
bool operator<(LPCSTR pszSrc) const throw();

Tampilkan Nilai

Mengembalikan TRUE jika item yang dibandingkan kurang dari CComBSTR objek; jika tidak, mengembalikan FALSE.

Keterangan

Perbandingan dilakukan menggunakan lokal default pengguna.

CComBSTR::operator =

m_str Mengatur anggota ke salinan pSrc atau ke salinan anggota BSTR .src Operator penetapan pemindahan bergerak src tanpa menyalinnya.

CComBSTR& operator= (const CComBSTR& src);
CComBSTR& operator= (LPCOLESTR pSrc);
CComBSTR& operator= (LPCSTR pSrc);
CComBSTR& operator= (CComBSTR&& src) throw(); // (Visual Studio 2017)

Keterangan

Parameter pSrc menentukan LPCOLESTR untuk versi Unicode atau LPCSTR untuk versi ANSI.

Contoh

Lihat contoh untuk CComBSTR::Copy.

CComBSTR::operator ==

Membandingkan CComBSTR dengan string. CComBSTRs dibandingkan secara tekstual dalam konteks lokal default pengguna.

bool operator== (const CComBSTR& bstrSrc) const throw();
bool operator== (LPCOLESTR pszSrc) const;
bool operator== (LPCSTR pszSrc) const;
bool operator== (int nNull) const throw();

Parameter

bstrSrc
[di] Sebuah CComBSTR objek.

pszSrc
[di] String yang dihentikan nol.

nNull
[di] Harus .NULL

Tampilkan Nilai

Mengembalikan TRUE jika item yang dibandingkan sama dengan CComBSTR objek; jika tidak, mengembalikan FALSE.

Keterangan

Operator perbandingan akhir hanya membandingkan string yang terkandung dengan NULL.

CComBSTR::operator >

Membandingkan CComBSTR dengan string.

bool operator>(const CComBSTR& bstrSrc) const throw();

Tampilkan Nilai

Mengembalikan TRUE jika item yang dibandingkan lebih besar dari CComBSTR objek; jika tidak, mengembalikan FALSE.

Keterangan

Perbandingan dilakukan menggunakan lokal default pengguna.

CComBSTR::ReadFromStream

m_str Mengatur anggota ke yang BSTR terkandung dalam aliran yang ditentukan.

HRESULT ReadFromStream(IStream* pStream) throw();

Parameter

pStream
[di] Penunjuk ke IStream antarmuka pada aliran yang berisi data.

Tampilkan Nilai

Nilai standar HRESULT .

Keterangan

ReadToStream mengharuskan konten aliran pada posisi saat ini kompatibel dengan format data yang ditulis oleh panggilan ke WriteToStream.

Contoh

IDataObject* pDataObj;

// Fill in the FORMATETC struct to retrieve desired format 
// from clipboard
FORMATETC formatetcIn = {CF_TEXT, NULL, DVASPECT_CONTENT, -1, TYMED_ISTREAM};
STGMEDIUM medium;
ZeroMemory(&medium, sizeof(STGMEDIUM));

// Get IDataObject from clipboard
HRESULT hr = ::OleGetClipboard(&pDataObj);

// Retrieve data from clipboard
hr = pDataObj->GetData(&formatetcIn, &medium);

if (SUCCEEDED(hr) && medium.tymed == TYMED_ISTREAM)
{
   CComBSTR bstrStr;
   // Get BSTR out of the stream
   hr = bstrStr.ReadFromStream(medium.pstm);

   //release the stream
   ::ReleaseStgMedium(&medium);
}

CComBSTR::ToLower

Mengonversi string yang terkandung menjadi huruf kecil.

HRESULT ToLower() throw();

Tampilkan Nilai

Nilai standar HRESULT .

Keterangan

Lihat CharLowerBuff untuk informasi selengkapnya tentang bagaimana konversi dilakukan.

CComBSTR::ToUpper

Mengonversi string yang terkandung menjadi huruf besar.

HRESULT ToUpper() throw();

Tampilkan Nilai

Nilai standar HRESULT .

Keterangan

Lihat CharUpperBuff untuk informasi selengkapnya tentang bagaimana konversi dilakukan.

CComBSTR::WriteToStream

m_str Menyimpan anggota ke aliran.

HRESULT WriteToStream(IStream* pStream) throw();

Parameter

pStream
[di] Penunjuk ke IStream antarmuka pada aliran.

Tampilkan Nilai

Nilai standar HRESULT .

Keterangan

Anda dapat membuat BSTR ulang dari konten aliran menggunakan ReadFromStream fungsi .

Contoh

//implementation of IDataObject::GetData()
STDMETHODIMP CMyDataObj::GetData(FORMATETC *pformatetcIn, STGMEDIUM *pmedium)
{
    HRESULT hr = S_OK;
    if (pformatetcIn->cfFormat == CF_TEXT && pformatetcIn->tymed == TYMED_ISTREAM)
    {
        IStream *pStm;
        // Create an IStream from global memory
        hr = CreateStreamOnHGlobal(NULL, TRUE, &pStm);
        if (FAILED(hr))
            return hr;

        // Initialize CComBSTR
        CComBSTR bstrStr = OLESTR("Hello World");

        // Serialize string into stream
        // the length followed by actual string is serialized into stream
        hr = bstrStr.WriteToStream(pStm);

        // Pass the IStream pointer back through STGMEDIUM struct
        pmedium->tymed = TYMED_ISTREAM;
        pmedium->pstm = pStm;
        pmedium->pUnkForRelease = NULL; 
    }

    return hr;
}

Lihat juga

Gambaran Umum Kelas
Makro Konversi String ATL dan MFC