Aracılığıyla paylaş


CComBSTR Sınıf

Bu sınıf, s için BSTRbir sarmalayıcıdır.

Sözdizimi

class CComBSTR

Üyeler

Ortak Oluşturucular

Veri Akışı Adı Açıklama
CComBSTR::CComBSTR Oluşturucu.
CComBSTR::~CComBSTR Yok edici.

Genel Yöntemler

Veri Akışı Adı Açıklama
CComBSTR::Append öğesine bir dize ekler m_str.
CComBSTR::AppendBSTR öğesine ekler BSTR m_str.
CComBSTR::AppendBytes öğesine belirtilen sayıda bayt ekler m_str.
CComBSTR::ArrayToBSTR safearray içindeki her öğenin ilk karakterinden bir BSTR oluşturur ve nesneye CComBSTR ekler.
CComBSTR::AssignBSTR öğesine m_strbir BSTR atar.
CComBSTR::Attach Nesnesine CComBSTR bir BSTR ekler.
CComBSTR::BSTRToArray Dizinin her öğesinin nesneden CComBSTR bir karakter olduğu sıfır tabanlı bir tek boyutlu safearray oluşturur.
CComBSTR::ByteLength Bayt cinsinden uzunluğunu m_str döndürür.
CComBSTR::Copy öğesinin m_strbir kopyasını döndürür.
CComBSTR::CopyTo Parametresi aracılığıyla [out] bir m_str kopyasını döndürür
CComBSTR::Detach m_str Nesneden CComBSTR ayırır.
CComBSTR::Empty serbesttir m_str.
CComBSTR::Length uzunluğunu m_strdöndürür.
CComBSTR::LoadString Bir dize kaynağı yükler.
CComBSTR::ReadFromStream Bir BSTR akıştan nesne yükler.
CComBSTR::ToLower Dizeyi küçük harfe dönüştürür.
CComBSTR::ToUpper Dizeyi büyük harfe dönüştürür.
CComBSTR::WriteToStream m_str Bir akışa kaydeder.

Ortak İşleçler

Veri Akışı Adı Açıklama
CComBSTR::operator BSTR Bir CComBSTR nesneyi BSTR'ye dönüştürür.
CComBSTR::operator ! NULL olup olmadığına m_str bağlı olarak DOĞRU veya YANLIŞ döndürür.
CComBSTR::operator != bir CComBSTR dize ile karşılaştırır.
CComBSTR::operator & adresini m_strdöndürür.
CComBSTR::operator += Nesnesine a CComBSTR ekler.
CComBSTR::operator < bir CComBSTR dize ile karşılaştırır.
CComBSTR::operator = öğesine m_strbir değer atar.
CComBSTR::operator == bir CComBSTR dize ile karşılaştırır.
CComBSTR::operator > bir CComBSTR dize ile karşılaştırır.

Ortak Veri Üyeleri

Veri Akışı Adı Açıklama
CComBSTR::m_str BSTR Nesnesiyle ilişkili öğesini CComBSTR içerir.

Açıklamalar

CComBSTR sınıfı, uzunluk ön ekli dizeler olan s için BSTRsarmalayıcıdır. Uzunluk, dizedeki verilerin önündeki bellek konumunda bir tamsayı olarak depolanır.

A BSTR , son sayılan karakterden sonra null olarak sonlandırılır, ancak dizeye eklenmiş null karakterler de içerebilir. Dize uzunluğu, ilk null karaktere değil karakter sayısına göre belirlenir.

Not

sınıfı, CComBSTR ANSI veya Unicode dizelerini bağımsız değişken olarak alan bir dizi üye (oluşturucular, atama işleçleri ve karşılaştırma işleçleri) sağlar. Geçici Unicode dizeleri genellikle dahili olarak oluşturulduğundan, bu işlevlerin ANSI sürümleri Unicode karşılıklarından daha az verimlidir. Verimlilik için mümkün olduğunca Unicode sürümlerini kullanın.

Not

Visual Studio .NET'te uygulanan geliştirilmiş arama davranışı nedeniyle, önceki sürümlerde derlenmiş olabilecek gibi bstr = L"String2" + bstr;kodlar olarak bstr = CStringW(L"String2") + bstruygulanmalıdır.

kullanırken CComBSTRdikkat edenlerin listesi için bkz . ile CComBSTRprogramlama.

Gereksinimler

Üstbilgi: atlbase.h

CComBSTR::Append

lpsz veya BSTR üyesini bstrSrc öğesine eklerm_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();

Parametreler

bstrSrc
[in] CComBSTR Eklenecek nesne.

ch
[in] Eklenecek karakter.

lpsz
[in] Eklenecek sıfır sonlandırılan karakter dizesi. Bir Unicode dizesini aşırı yükleme yoluyla LPCOLESTR veya ANSI dizesini LPCSTR sürüm aracılığıyla geçirebilirsiniz.

nLen
[in] Eklenecek karakter lpsz sayısı.

Dönüş Değeri

S_OK veya herhangi bir standart HRESULT hata değeri.

Açıklamalar

Bir ANSI dizesi, eklenmeden önce Unicode'a dönüştürülür.

Örnek

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

Belirtilen BSTR öğesini sonuna ekler m_str.

HRESULT AppendBSTR(BSTR p) throw();

Parametreler

p
[in] Eklenecek A BSTR .

Dönüş Değeri

S_OK veya herhangi bir standart HRESULT hata değeri.

Açıklamalar

Bu yönteme sıradan bir geniş karakterli dize geçirmeyin. Derleyici hatayı yakalayamıyor ve çalışma zamanı hataları oluşuyor.

Örnek

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

Belirtilen bayt sayısını dönüştürme olmadan sonuna m_str ekler.

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

Parametreler

lpsz
[in] Eklenecek bayt dizisinin işaretçisi.

p
[in] Eklenecek bayt sayısı.

Dönüş Değeri

S_OK veya herhangi bir standart HRESULT hata değeri.

Örnek

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

Nesnede CComBSTR tutulan tüm mevcut dizeleri serbest, ardından safearray içindeki her öğenin ilk karakterinden bir BSTR oluşturur ve nesneye CComBSTR ekler.

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

Parametreler

pSrc
[in] Dizeyi oluşturmak için kullanılan öğeleri içeren safearray.

Dönüş Değeri

S_OK veya herhangi bir standart HRESULT hata değeri.

CComBSTR::AssignBSTR

öğesine m_strbir BSTR atar.

HRESULT AssignBSTR(const BSTR bstrSrc) throw();

Parametreler

bstrSrc
[in] Geçerli CComBSTR nesneye atanacak BSTR.

Dönüş Değeri

S_OK veya herhangi bir standart HRESULT hata değeri.

CComBSTR::Attach

üyesini srcCComBSTR olarak ayarlayarak nesnesine m_str bir BSTR ekler.

void Attach(BSTR src) throw();

Parametreler

src
[in] BSTR nesnesine iliştirmek için.

Açıklamalar

Bu yönteme sıradan bir geniş karakterli dize geçirmeyin. Derleyici hatayı yakalayamıyor ve çalışma zamanı hataları oluşuyor.

Not

Bu yöntem NULL olmayan bir m_str yöntem olduğunu onaylar.

Örnek

// 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

Dizinin her öğesinin nesneden CComBSTR bir karakter olduğu sıfır tabanlı bir tek boyutlu safearray oluşturur.

HRESULT BSTRToArray(LPSAFEARRAY* ppArray) throw();

Parametreler

ppArray
[out] işlevin sonuçlarını tutmak için kullanılan safearray işaretçisi.

Dönüş Değeri

S_OK veya herhangi bir standart HRESULT hata değeri.

CComBSTR::ByteLength

sonlandırıcı null karakteri hariç, içindeki m_strbayt sayısını döndürür.

unsigned int ByteLength() const throw();

Dönüş Değeri

Üyenin m_str bayt cinsinden uzunluğu.

Açıklamalar

ise m_str NULL0 döndürür.

Örnek

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

unsigned int len = bstrTemp.ByteLength();

ATLASSERT(len == 22);   

CComBSTR::CComBSTR

Oluşturucu. Varsayılan oluşturucu, üyeyi m_str olarak NULLayarlar.

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)

Parametreler

nSize
[in] Kopyalanacak sz karakter sayısı veya için karakter CComBSTRcinsinden ilk boyut.

sz
[in] Kopyalanacak dize. Unicode sürümü bir LPCOLESTRbelirtir; ANSI sürümü bir LPCSTR belirtir.

pSrc
[in] Kopyalanacak dize. Unicode sürümü bir LPCOLESTRbelirtir; ANSI sürümü bir LPCSTR belirtir.

src
[in] Bir CComBSTR nesne.

guid
[in] Bir yapıya GUID başvuru.

Açıklamalar

Kopya oluşturucu, BSTR üyesinin bir kopyasına srcayarlarm_str. REFGUID Oluşturucu kullanarak GUID'yi bir dizeye StringFromGUID2 dönüştürür ve sonucu depolar.

Diğer oluşturucular, belirtilen dizenin bir kopyasına ayarlanır m_str . için nSizebir değer geçirirseniz, yalnızca nSize karakterler kopyalanır ve ardından sonlandırıcı bir null karakter gelir.

CComBSTR taşıma semantiğini destekler. Nesneyi kopyalama ek yükü olmadan, bağımsız değişken olarak geçirdiğiniz eski nesneyle aynı temel verileri kullanan yeni bir nesne oluşturmak için taşıma oluşturucuyu (rvalue başvurusu (&&) alan oluşturucuyu kullanabilirsiniz.

Yıkıcı tarafından m_strişaret edilen dizeyi serbest koyar.

Örnek

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

Yok edici.

~CComBSTR();

Açıklamalar

Yıkıcı tarafından m_strişaret edilen dizeyi serbest koyar.

CComBSTR::Copy

öğesinin bir kopyasını m_strayırır ve döndürür.

BSTR Copy() const throw();

Dönüş Değeri

Üyenin m_str bir kopyası. ise m_str NULL, döndürür NULL.

Örnek

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

parametresi aracılığıyla öğesinin m_str bir kopyasını ayırır ve döndürür.

HRESULT CopyTo(BSTR* pbstr) throw();

HRESULT CopyTo(VARIANT* pvarDest) throw();

Parametreler

pbstr
[out] Bu yöntem tarafından ayrılan dizenin döndürüleceği bir BSTR adresi.

pvarDest
[out] Bu yöntem tarafından ayrılan dizenin döndürüleceği bir VARIANT adresi.

Dönüş Değeri

Kopyanın başarısını veya başarısızlığını gösteren standart HRESULT değer.

Açıklamalar

Bu yöntem çağrıldıktan sonra, VARIANT ile işaret edilen pvarDest türünde VT_BSTRolacaktır.

Örnek

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 nesnesinden CComBSTR ayırır ve olarak NULLayarlarm_str.

BSTR Detach() throw();

Dönüş Değeri

BSTR Nesnesiyle CComBSTR ilişkilendirilmiş olan.

Örnek

// 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

Üyeyi serbesttir m_str .

void Empty() throw();

Örnek

CComBSTR bstr(OLESTR("abc"));

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

CComBSTR::Length

sonlandırıcı null karakter hariç, içindeki m_strkarakter sayısını döndürür.

unsigned int Length() const throw();

Dönüş Değeri

Üyenin m_str uzunluğu.

Örnek

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

unsigned int len = bstrTemp.Length();

ATLASSERT(len == 11);

CComBSTR::LoadString

tarafından nID belirtilen bir dize kaynağını yükler ve bu nesnede depolar.

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

Parametreler

Bkz LoadString . Windows SDK'sı.

Dönüş Değeri

Dize başarıyla yüklenirse döndürür TRUE ; aksi takdirde döndürür FALSE.

Açıklamalar

İlk işlev, parametresi aracılığıyla hInst sizin tanımladığınız modüldeki kaynağı yükler. İkinci işlev, kaynağı bu projede kullanılan türetilmiş nesneyle CComModuleilişkili kaynak modülünden yükler.

Örnek

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

BSTR Nesnesiyle ilişkili öğesini CComBSTR içerir.

BSTR m_str;

Örnek

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

Nesnesini öğesine CComBSTR BSTRatar.

operator BSTR() const throw();

Açıklamalar

[in] BSTR parametreleri olan işlevlere nesneleri geçirmenizi CComBSTR sağlar.

Örnek

örneğine CComBSTR::m_strbakın.

CComBSTR::operator !

Dizenin olup NULLolmadığını BSTR denetler.

bool operator!() const throw();

Dönüş Değeri

Üye ise m_str NULLdöndürürTRUE; değilse, FALSEdöndürür.

Açıklamalar

Bu işleç boş bir NULL dize için değil yalnızca bir değeri denetler.

Örnek

// 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 !=

mantıksal tersini operator ==döndürür.

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

Parametreler

bstrSrc
[in] Bir CComBSTR nesne.

pszSrc
[in] Sıfır sonlandırılan bir dize.

nNull
[in] NULL olmalıdır.

Dönüş Değeri

Karşılaştırılan öğe nesneye CComBSTR eşit değilse döndürürTRUE; aksi takdirde döndürürFALSE.

Açıklamalar

CComBSTRs değerleri, kullanıcının varsayılan yerel ayarı bağlamında metin olarak karşılaştırılır. Son karşılaştırma işleci yalnızca içerdiği dizeyi ile NULLkarşılaştırır.

CComBSTR::operator &

Üyede m_str depolanan adresini BSTR döndürür.

BSTR* operator&() throw();

Açıklamalar

CComBstr operator & , bellek sızıntılarını tanımlamaya yardımcı olmak için onunla ilişkilendirilmiş özel bir onaylamaya sahiptir. Üye başlatıldığında program bunu onaylar m_str . Bu onay, bir programcının & operator ilk ayırmasını boşaltmadan üyesine yeni bir değer atamak için m_str öğesini kullandığı durumları belirlemek için oluşturulmuştur m_str. eşitse m_str NULL, program m_str henüz ayrılmadığını varsayar. Bu durumda, program onaylamaz.

Bu onay varsayılan olarak etkin değildir. Bu onaylamayı etkinleştirmek için tanımlayın ATL_CCOMBSTR_ADDRESS_OF_ASSERT .

Örnek

#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 +=

Nesneye CComBSTR bir dize ekler.

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

Parametreler

bstrSrc
[in] CComBSTR Eklenecek nesne.

pszSrc
[in] Eklenecek sıfır sonlandırılan dize.

Açıklamalar

CComBSTRs değerleri, kullanıcının varsayılan yerel ayarı bağlamında metin olarak karşılaştırılır. Karşılaştırma LPCOLESTR , her dizedeki ham veriler üzerinde kullanılarak memcmp yapılır. Karşılaştırma LPCSTR , geçici bir Unicode kopyası pszSrc oluşturulduktan sonra aynı şekilde gerçekleştirilir. Son karşılaştırma işleci yalnızca içerdiği dizeyi ile NULLkarşılaştırır.

Örnek

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 <

bir CComBSTR dize ile karşılaştırır.

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

Dönüş Değeri

Karşılaştırılan öğe nesneden küçükse döndürürTRUE; aksi takdirde döndürürFALSE.CComBSTR

Açıklamalar

Karşılaştırma, kullanıcının varsayılan yerel ayarı kullanılarak gerçekleştirilir.

CComBSTR::operator =

Üyeyi öğesinin m_str pSrc veya öğesinin bir kopyasına BSTR srcayarlar. Atamayı taşıma işleci kopyalamadan taşınır src .

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

Açıklamalar

parametresi Unicode pSrc sürümleri için veya LPCSTR ANSI sürümleri için bir LPCOLESTR belirtir.

Örnek

örneğine CComBSTR::Copybakın.

CComBSTR::operator ==

bir CComBSTR dize ile karşılaştırır. CComBSTRs değerleri, kullanıcının varsayılan yerel ayarı bağlamında metin olarak karşılaştırılır.

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

Parametreler

bstrSrc
[in] Bir CComBSTR nesne.

pszSrc
[in] Sıfır sonlandırılan bir dize.

nNull
[in] olmalıdır NULL.

Dönüş Değeri

Karşılaştırılan öğe nesneye eşitse döndürürTRUE; aksi takdirde döndürürFALSE.CComBSTR

Açıklamalar

Son karşılaştırma işleci yalnızca içerdiği dizeyi ile NULLkarşılaştırır.

CComBSTR::operator >

bir CComBSTR dize ile karşılaştırır.

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

Dönüş Değeri

Karşılaştırılan öğe nesneden büyükse döndürürTRUE; aksi takdirde döndürürFALSE.CComBSTR

Açıklamalar

Karşılaştırma, kullanıcının varsayılan yerel ayarı kullanılarak gerçekleştirilir.

CComBSTR::ReadFromStream

Üyeyi m_str BSTR belirtilen akışta bulunan değerine ayarlar.

HRESULT ReadFromStream(IStream* pStream) throw();

Parametreler

pStream
[in] Verileri içeren akış üzerindeki arabirimin işaretçisi IStream .

Dönüş Değeri

Standart HRESULT bir değer.

Açıklamalar

ReadToStream , geçerli konumdaki akışın içeriğinin çağrısı WriteToStreamtarafından yazılan veri biçimiyle uyumlu olmasını gerektirir.

Örnek

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

İçerilen dizeyi küçük harfe dönüştürür.

HRESULT ToLower() throw();

Dönüş Değeri

Standart HRESULT bir değer.

Açıklamalar

Dönüştürmenin nasıl yapıldığı hakkında daha fazla bilgi için bkz CharLowerBuff .

CComBSTR::ToUpper

İçerilen dizeyi büyük harfe dönüştürür.

HRESULT ToUpper() throw();

Dönüş Değeri

Standart HRESULT bir değer.

Açıklamalar

Dönüştürmenin nasıl yapıldığı hakkında daha fazla bilgi için bkz CharUpperBuff .

CComBSTR::WriteToStream

Üyeyi m_str bir akışa kaydeder.

HRESULT WriteToStream(IStream* pStream) throw();

Parametreler

pStream
[in] Akış üzerindeki arabirimin IStream işaretçisi.

Dönüş Değeri

Standart HRESULT bir değer.

Açıklamalar

işlevini kullanarak ReadFromStream akışın içeriğinden bir BSTR yeniden oluşturabilirsiniz.

Örnek

//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;
}

Ayrıca bkz.

Sınıfa Genel Bakış
ATL ve MFC Dize Dönüştürme Makroları