|
Sauce! wrote: Is there a function I can use to get a pointer to the pixel data from this struct?
AFAIK no.
[added]
From a quick look at article source code, it looks like the pixel data section (after the CaptureDIB call) is in memory just after the BITMAPINFO struct (like bitmap files).
[/added]
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
modified on Tuesday, September 15, 2009 8:39 AM
|
|
|
|
|
In that case, does anybody know of any existing libraries that will allow me to simply capture pixel data from a video device?
|
|
|
|
|
Hi VC++ programmers,
how to programmatically and silent create MSWord document using .dot file as a template and data from dialog based app ? Env: VS6, WordXP/Word2003, WinXP.
Thanks in advance.
|
|
|
|
|
Create an instance of Word's Application object, then use the Add method of the Application's Documents property to create the document - you can specify the template in that method call.
Don't know what you mean by "data from dialog based app"
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks for reply.
I mean get text from various fields and insert into specific places in document.
|
|
|
|
|
Well - getting text from dialog fields - you can find that out from any number of places - this link[^] should help.
As for inserting into the document - well, you need to navigate through the document using the Word object model. The Document object has a Content property, which is a Range object representing the main flow of text in the document. A Range object has various properties (like Paragraphs or Characters properties) that allow you to manipulate the text in the document. Prototype in Visual BASIC - it's a lot quicker and easier.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks,
now I know the way to investigate the issue
|
|
|
|
|
Hi friends,
Below line contain my code.I m writting data into the text file.i have acess database and i write this databse into text file format. my access databse table contain 99 records and i m using CDaoRecordset MoveNext() to get next record data.Problem is that i get record till 18 its ok but after that i get 20 position record and afterthat i get 19 position record.then i get 26 to 30 position record and then i get 21 to 25 record data.But data in the database table is sequentially.So why this problem will occour i wont understand.
Plz help me..
m_pRecordSet = new CDaoRecordset(m_pDatabase);
CString strTablename = _T("pdpstate");
m_pRecordSet->Open(dbOpenTable,strTablename);
int nRecordCnt = m_pRecordSet->GetRecordCount();
int nFieldCnt = m_pRecordSet->GetFieldCount();
CDaoFieldInfo cTempdaoFieldInfo;
CString csSetID,csFieldStr;
CStdioFile cTestFile;
cTestFile.Open(_T("d:\\Jitu45.txt"),CStdioFile::modeCreate | CStdioFile::modeWrite);
for(int nfCnt = 0; nfCnt < nFieldCnt; nfCnt++)
{
m_pRecordSet->GetFieldInfo(nfCnt,cTempdaoFieldInfo);
cTestFile.WriteString(cTempdaoFieldInfo.m_strName);
cTestFile.WriteString(_T(","));
}
cTestFile.WriteString(_T("\n"));
while(!m_pRecordSet->IsEOF())
{
COleVariant variantTemp;
//..// Move through fields in current record..
int nFields = m_pRecordSet->GetFieldCount();
for ( int i=0; i < nFields; i++ )
{
variantTemp.Clear();
variantTemp = m_pRecordSet->GetFieldValue(i);
csSetID.Format(_T("%d"),variantTemp.intVal);
cTestFile.WriteString(csSetID);
cTestFile.WriteString(_T(","));
}
cTestFile.WriteString(_T("\n"));
m_pRecordSet->MoveNext();
}
cTestFile.Close();
|
|
|
|
|
What about an ORDER BY clause in the query?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
ORDER BY can be achieved by setting the COLUMN_NAME by which you want to sort the records to the "m_strSort" member of the CDaoRecordset class.
|
|
|
|
|
Hi All
How can i convert _variant_t to CString?
|
|
|
|
|
I suppose you need the string representation of the _variant_t value.
You've to properly format a CString object, depending on the value of the vt member of the encapsulated VARIANT struct. For instance
CString str;
_variant_t v1;
v1 = 0.53;
switch (v1.vt)
{
case VT_R8:
str.Format(_T("%g"), v1.dblVal);
break;
}
MessageBox(str, _T("Variant value"));
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Noooooo - you don't need to bother with that - there's a VariantChangeType function that'll do that for you when you convert a VARIANT to a BSTR.
And even more conveniently, the combination of _variant_t extractor operators and CString constructors will do all that for you. A simple assignment of _variant_t to CString is all that's needed...
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Nice to know .
What about _variant_t containing arrays?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
CPallini wrote: What about _variant_t containing arrays?
Use CComSafeArray[^].
_variant_t v;
CComSafeArray<char, VT_UI1> sa(V_ARRAY(&v));
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Thanks for responce.I hava a biray type data in _variant_t.
_variant_t v1;
v1=(54 '6',53 '5',52 '4',54 '6',52 '4',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
Can i convert these values in CString or not.
Origal values is"65464".
Plz help me
|
|
|
|
|
What is v1.vt value?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
In VS2008, this should do the job...
_variant_t v;
CString s = v;
CString has assignment operator and constructor overl;oads that take a const VARIANT& . _variant_t has an extrractor that returns a VARIANT .
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
|
I (and Microsoft, who wrote the _variant_t and CString code) have helped you - you just assign the _variant_t to the CString - what more do you want?!?!?!?!?
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
See what happen.
_variant_t vtValue;
vtValue = m_pRset->Fields->GetItem("Bianry")->GetValue();
CString b=vtValue;
output is b = "??4"
when i copy the vtValues at the time of debug then i got values
safearray of UI1 = [20](54 '6',53 '5',52 '4',54 '6',52 '4',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
Any more information if you nedd then i will give you.
|
|
|
|
|
As it's an array, VariantChangeType's not going to work. So, I'd suggest the code below.
I'm assuming you want to access the non-null characters of the array and make them into a string?
CComSafeArray<char, VT_UI1> sa(V_ARRAY(&v));
CString s;
for(int index=sa.GetLowerBound();index<=sa.GetUpperBound()&&sa[index];++index)
{
s+=sa[index];
}
[edit] You'll also need to #include atlsafe.h and oleauto.h [/edit]
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Hi Stuart,
What do you think about this VT_UI1 SAFEARRAY to CStringA conversion method?
BSTR b;
BstrFromVector(pSA,&b);
CStringA s = (LPCSTR)b;
Best Wishes,
-David Delaune
|
|
|
|
|
New to me - that'll teach me to do what I've told many other people to do and read the documentation
And of course it'll work with wide CStrings as well.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
thanks it's working for me.
|
|
|
|
|