|
OLE automation uses only VARIANT data types. So any parameters, which are passed between your server and VB, ASP, scripting engines, or any client, which use ole automation should be VARIANT compatible. The VB runtime will simply free the resources by calling VariantClear or some similar mechanism when the resource will go out of scope.
|
|
|
|
|
solon wrote:
The VB runtime will simply free the resources by calling VariantClear or some similar mechanism when the resource will go out of scope.
Cool
And thanks too
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
I asked an expert and this is what he said:
In VB and ASP you do not need to call SysFreeString() because VB makes that call for you.
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Thanks a lot Mazy
You are a big help
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
VARIANT v;
V_VT (&v) = VT_ENIGMA;
V_ENIGMA (&v) = ::CoCreateEnigma ();
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
First of all, my equipment:
I use the Win2kServer OS with the following settings:
Name:iras
Workgroup: HTBL
Domain for Windows: htlpinkafeld.at
Domain for Netware: HTBl\
TestUser: testuser@htlpinkafeld.at (HTBL\testuser)
The TestUser is placed in hltpinkafeld.at\edvoschueler and uses no password
My goal is to get access to this testuser with Visual C++ 6.0 from a remote workstation (in the same network). The OS of the workstation is Win2kProf.
The MSDN which i use is the April 2001 version.
At first i tried to get the function
HRESULT ADsOpenObject(
LPWSTR lpszPathName,
LPWSTR lpszUserName,
LPWSTR lpszPassword,
DWORD dwReserved,
REFIID riid,
VOID FAR * FAR *ppObject
);
work!
And according to this the problems began!
1. I don't know how the first three parameters should look like!
2. The 5th parameter needs the library ADSIID.lib. The function needs also the library ActiveDS.lib to work right. But within these two libs declarations are redefined which means i can't execute the program! I found out that this sometimes happens, and that i should add the prefix "/force:multiple" to the menu Project\Settings...\Link\"Project Options". It works but i don't know if this is allowed!
Please help me!
|
|
|
|
|
Hey Guys
Below is the funvtion i am exporting from my DLL.
bool DLLVerifySignature(BYTE *pFileNameAndPath)
This is called when a file is double clicked by rundll32 and i have put %1 at the end to pass the filepath as well. How do i pick this filename up in my dll so i can use it.
Peter
|
|
|
|
|
Calling that with Rundll32 will not work. The function needs this prototype:
void CALLBACK FuncName ( HWND hwndParent, HINSTANCE hinstDLL, LPTSTR szCmdLine, int nCmdShow ); The szCmdLine param contains everything on the rundll32 command line after the function name.
--Mike--
Best score on the mini-putt game: 27
My really out-of-date homepage
Sonork - 100.10414 AcidHelm
Big fan of Alyson Hannigan and Jamie Salé.
|
|
|
|
|
do i use delete object like this to prevent resource leaks???
// Destructor
CBoard::~CBoard()
{
// Delete the object to prevent resource leaks
mpPen->DeleteObject();
mpFont->DeleteObject();
// Destroys all the pointers to all objects
delete mpPen;
delete mpFont;
for (int r = 0; r < MAXROW; r++)
for (int c= 0; c < MAXCOL; c++)
delete mpGrid[r][c];
}
or i can just destroy it by deleting it or do i have to release it before i delete it when i called it like this:
// Change the Font Height and Width to the values entered
void CBoard::SetFontSize(CDC* pDC, int Height, int Width)
{
mpFont = new CFont;
VERIFY(mpFont->CreateFont(Height,Width,0,0,0,0,0,0,0,0,0,0,
DEFAULT_PITCH|FF_DONTCARE,"Tictactoe"));
VERIFY(mpDefaultFont = pDC->SelectObject(mpFont));
}
anyways, can anyone tell me if i am doing it right or what i am doing can cause memory or resource leaks... well, thank you in advance for your help
John
|
|
|
|
|
The most important step is selecting the original pen/brush/font into the DC before destroying it. OTherwise you will leak GDI resources and your program will eventually kill the graphics subsystem on any non-NT based OS.
You don't need to call DeleteObject before calling delete. Delete allows you to delete the handle being encapsulated without destroying the class object.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
Thanks for the help Christian. ill remember that
|
|
|
|
|
I have very basic question.I read some tutorials but didn't get one thing,I want to know what is "texture filters".I don't know what is it and what's they are good for?
Can anybody tell me about it in simple words?
thanks
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
I'm surprised Christian hasn't answered you...? Christian where are you...?
Textures are the images you map to polygons, this I assume you know...filters are usually...ummm just that...filter certain content...
Graphics filters...in psp7 seem to allow you to apply special effects...IE 4.0+ supports a feature called Filters and Transitions which again apply certain effects to elements.
So it's my best reasoning that texture filters are probably filters you apply to images(textures) for a certian effect...like changing the alpha-factor (which I think is what gives textures semi-transluecency)
Yup...these are my guesses from my work with graphics...
Cheers!
"An expert is someone who has made all the mistakes in his or her field" - Niels Bohr
|
|
|
|
|
hmmm,thanks HockeyDude.
HockeyDude wrote:
I'm surprised Christian hasn't answered you...? Christian where are you...?
I was waiting for his answer too
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Hi.
I am working on a small practice program for a C++ class. I need to implement a way to delimite using EOF. The user can break out of a while, for example, with ctrl-d (dos) or ctrl-z (unix).
What is the best way to implement something like that?
I have tried this:
while((num = cin.get()) != EOF) // from Deitel
{}
The above does not work.
Thanks,
Kuphryn
|
|
|
|
|
I didn't use it in C++,but just guess,try this:
while(cin.get()!=EOF)
{
}
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Hello
Say I am writing an ATL component.
Which are the various methods available to me to return a VB/ASP array?
From VB/ASP I should be able to do something like this :-
Set x = CreateObject("ABC.abx")
y=x.GetNiceLongArray()
for each t in y
response.write t
next
Any ideas, help is hugely appreciated.
I think someone told me abt safe arrays, last week. But last 7 days I didnt touch this stuff again ...
Now that it's a nice sunday, I thought I might as well do some learning...
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
Hi Nish:
public:
HRESULT FinalConstruct();
private:
std::vector(CComBSTR) m_vearray;--->I change this line because its like HTML tag,but you know the difference
Then add the implementation of FinalConstruct()
HRESULT CYourClass::FinalConstruct()
{
m_vearray.push_back(CComBSTR(L"Hello"));
return S_OK;
}
then add a property to your component with VARIANT * argument
STDMETHODIMP CYourclass::get_property(VARIANT * pVal)
{
VariantInit(pVal);
pVal->vt=VT_ARRAY|VT_BSTR;
SAFEARRAY *psa;
SAFEARRAYBOUND bounds=(m_vearray.size(),0);
psa=SafeArrayCreate(VT_BSTR,1,&bounds);
BSTR *bstrArray;
SafeArrayAccessData(psa,reiterpret_cast<void **>(&bstrArray));
std::vector(CComBSTR)::iterator it;--->change this line too
int i=0;
for(it=m_vearray.begin();it !=m_vearray.end();i++)
{
bstrArray[i]=SysAllocString((*it).m_str);
}
SafeArrayUnaccessData(psa);
pVal->parray=psa;
return S_OK;
}
Is that what you want Nish?
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Mazdak wrote:
Is that what you want Nish?
Mazy
Hello Mazy
Thanks for that. But I wasnt looking for code snippets. Specially since most of it didnt make any sense to me. I have not spend too much time on ATL. Just a couple of hrs every week. Sometimes less than that.
From your post I understand I need to look into safe arrays.
I dont wanna use std::vector either.
So do you know any good intro stuff on safe arays.
The book I have [Inside ATL by Shephard and King] does not have a chapter on safe arrays
Regards and thanks once again
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
Nish [BusterBoy] wrote:
So do you know any good intro stuff on safe arays.
Hi Nish:
I don't have any intro about it,but some months ago,I found some articles about ATL at the link below,check it maybe you find something useful about ATL or safe array.
p2p.wrox.com
Nish [BusterBoy] wrote:
The book I have [Inside ATL by Shephard and King] does not have a chapter on safe arrays
I myself began ATL with "Beginning ATL3COM Programming by Richard Grimes" ,in this books some pages belong to safearray,the codes I used was from this book.I like this book because it goes in details of ATL.
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Thanks Mazy
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
Nish [BusterBoy] wrote:
From your post I understand I need to look into safe arrays.
Yes, you do. I just did my first one of these on Friday, and read it in an .asp.
Nish [BusterBoy] wrote:
I dont wanna use std::vector either.
You can't anyhow, to impliment an automation compatible server, you need to stick to the object types defined by COM, not those specific to C++. However, why WOULDN'T you use vector ?
Nish [BusterBoy] wrote:
So do you know any good intro stuff on safe arays.
The book I have [Inside ATL by Shephard and King] does not have a chapter on safe arrays
Surely MSDN has some info ? The best ATL book I bought ( and I bought a lot ) was Creating lightweight components with ATL by Jonothan Bates. If you want to learn ATL, get this book. It has a half decent intro to STL in it, no match for a decent text, but an OK intro nonetheless.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
Christian Graus wrote:
You can't anyhow, to impliment an automation compatible server, you need to stick to the object types defined by COM, not those specific to C++.
Okay, then what's the ATL equivalent for std::vector ???
Nish
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|
Internally, you'd use vector, but I believe the answer is VARIANT, which has VT_ARRAY as one of it's types, which needs to be ORed with an actual type to make an array of.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
|
|
|
|
|
Dear CG,
Thanks for that. But I am now horrified by a new realization.
Read my new post for more info...
http://www.codeproject.com/script/comments/forums.asp?forumid=1647&select=124762#xx124762xx
Nish [still under shock]
It's seven o'clock
On the dot
I'm in my drop top
Cruisin' the streets - Oh yeah
I got a real pretty, pretty little thing that's waiting for me
|
|
|
|
|