|
Nish - Native CPian wrote:
HRESULT hr = pServer.CreateInstance(__uuidof(ISimplePgp));
SimplePgp-------->Your I is extra.
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
Mazdak wrote:
SimplePgp-------->Your I is extra.
If I remove the I, I get an error :-
error C2065: 'SimplePgp' : undeclared identifier
Nish
p.s. I am home now and trying it on VC++ 7 with same problems
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Nish - Native CPian wrote:
error C2065: 'SimplePgp' : undeclared identifier
Did you do that steps I said about stafx.h and.....?
Nish - Native CPian wrote:
p.s. I am home now and trying it on VC++ 7 with same problems
I test these things with VC6 and donna about VC7.
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
Mazdak wrote:
Did you do that steps I said about stafx.h and.....?
Yes, I did all that
My tlh file is included below: [I have already posted this in another post]
As you can see there is no mention of any SimplePgp. There is ISimplePgp but nothing about SimplePgp
#pragma once
#pragma pack(push, 8)
#include <comdef.h>
struct __declspec(uuid("c9f9f5c7-a457-4bc1-9cc5-c42f68cbb5f9"))
__TestCom;
struct CSimplePgp;
struct __declspec(uuid("5ae26493-1190-4d2d-9897-a3b2000a80b8"))
ISimplePgp;
_COM_SMARTPTR_TYPEDEF(ISimplePgp, __uuidof(ISimplePgp));
struct __declspec(uuid("d3acd3f4-b659-4128-9ca7-ab5fe7a5b2e9"))
CSimplePgp;
struct __declspec(uuid("5ae26493-1190-4d2d-9897-a3b2000a80b8"))
ISimplePgp : IDispatch
{
VARIANT_BOOL TestNish (
_bstr_t MyName );
virtual HRESULT __stdcall raw_TestNish (
BSTR MyName,
VARIANT_BOOL * RetVal ) = 0;
};
#include "d:\projects\testcomclient\debug\TestCom.tli"
#pragma pack(pop)
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
I have suggestion for you Nish.When I get into troubles like this,I keep that project away.Do not think about it for some hours,then come back and start from THE BEGINNING.Maybe it works for you too.
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
Mazdak wrote:
I have suggestion for you Nish.When I get into troubles like this,I keep that project away.Do not think about it for some hours,then come back and start from THE BEGINNING.Maybe it works for you too.
Mazy, thinmgs just got even more strange.
I tried out Jason's suggestion and instead of __uuidof(..) I did this :-
HRESULT hr=p.CreateInstance("TestCom.SimplePgp");
And it works fine!!!
Now I gotta figure out why __uuidof() failed both at office and here at home
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Nish - Native CPian wrote:
Now I gotta figure out why __uuidof() failed both at office and here at home
I'd be so pleased if you tell me after you find it out Nish.
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
Mazdak wrote:
I'd be so pleased if you tell me after you find it out Nish.
This worked :-
HRESULT hr=p.CreateInstance(__uuidof(CSimplePgp));
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Look at this thread.
No wonder you are the Top Poster.
|
|
|
|
|
Rama Krishna wrote:
Look at this thread.
No wonder you are the Top Poster
Sorry
But I badly wanted to get it to work
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Thank you.
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
#import "yourdll.dll" no_namespace
CoInitialize(NULL);
ISimplePgpPtr pServer;
HRESULT hr = pServer.CreateInstance("PutYourVersionIndependentProgIDHere");
if(SUCCEEDED(hr))
{
pServer->EncryptFile("d:\\in.txt","d:\a90.pgp","test@test.com");
pServer.Release();
pServer = NULL;
}
else
CoUninitialize();
Like it or not, I'm right.
|
|
|
|
|
This is my code :-
CoInitialize(NULL);
ISimplePgpPtr p;
HRESULT hr=p.CreateInstance(__uuidof(ISimplePgp));
if(!SUCCEEDED(hr))
std::cout << hr << "\r\n";
CoUninitialize();
return 0;
On running this I get this as the HRESULT error :-
-2147221164
VC++ Error Lookup says it is Class not registered
I am sure the class is registered
Nish!!!!!!!!
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Make sure its registered by running Regsvr32.exe "yourdll".
Also, try using the version independent progid instead of __uuidof(ISimplePgp). You can get this from the registry or you can usually find it in the OleCom Object viewer.
Like it or not, I'm right.
|
|
|
|
|
Jason Henderson wrote:
Make sure its registered by running Regsvr32.exe "yourdll".
Gosh! You didn't think I would have forgotten to do that, did you?
Jason Henderson wrote:
Also, try using the version independent progid instead of __uuidof(ISimplePgp). You can get this from the registry or you can usually find it in the OleCom Object viewer
GODDAMNIT!!!!!!!
It worked
But then why the F did __uuidof(...) fail?
Nish
p.,s. Thanks Jason
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Nish - Native CPian wrote:
It worked
Congratulation.
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
Mazdak wrote:
Congratulation
Thanks Mazy. You guys were a big help. You, Rama and jason
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Nish - Native CPian wrote:
Make sure its registered by running Regsvr32.exe "yourdll".
Gosh! You didn't think I would have forgotten to do that, did you?
No, but just in case.
Nish - Native CPian wrote:
But then why the F did __uuidof(...) fail?
I'm not sure ISimplePgp is a valid argument to __uuidof. The compiler has to be able to find the GUID and I don't think ISimplePgp is stored in the registry. The ProgId and version ind. progid are in the registry and they reference the GUID of the class.
Glad it works.
Like it or not, I'm right.
|
|
|
|
|
Jason Henderson wrote:
I'm not sure ISimplePgp is a valid argument to __uuidof. The compiler has to be able to find the GUID and I don't think ISimplePgp is stored in the registry. The ProgId and version ind. progid are in the registry and they reference the GUID of the class.
Guess what Jason! This worked
HRESULT hr=p.CreateInstance(__uuidof(CSimplePgp));
CSimplePgp was my coclass
Nish
p.s. It's funny huh? All of a sudden, everything makes perfect sense that till a few minutes ago was absolutely vague and strange!
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Another thing you have to do before use that code you have to do this:
use "#import" to import your dll in stdafx.h.You have to add something like this before //{{AFX_INSERT_LOCATION}} :
#import "C:\YourInterface.dll" no_namespace
then save and compile your StdAfx.cpp.After that locate your .tli and .tlh from your debug folder of ATL component project to your C++ debug folder .
Mazy
"The more I search, the more my need
For you,
The more I bless, the more I bleed
For you."The Outlaw Torn-Metallica
|
|
|
|
|
This is my tlh file. It does not have any reference to SimplePgp. It only has ISimplePgp
#pragma once
#pragma pack(push, 8)
#include <comdef.h>
struct __declspec(uuid("c9f9f5c7-a457-4bc1-9cc5-c42f68cbb5f9"))
__TestCom;
struct CSimplePgp;
struct __declspec(uuid("5ae26493-1190-4d2d-9897-a3b2000a80b8"))
ISimplePgp;
_COM_SMARTPTR_TYPEDEF(ISimplePgp, __uuidof(ISimplePgp));
struct __declspec(uuid("d3acd3f4-b659-4128-9ca7-ab5fe7a5b2e9"))
CSimplePgp;
struct __declspec(uuid("5ae26493-1190-4d2d-9897-a3b2000a80b8"))
ISimplePgp : IDispatch
{
VARIANT_BOOL TestNish (
_bstr_t MyName );
virtual HRESULT __stdcall raw_TestNish (
BSTR MyName,
VARIANT_BOOL * RetVal ) = 0;
};
#include "d:\projects\testcomclient\debug\TestCom.tli"
#pragma pack(pop)
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
I hid my edit box by ShowWindow (.., SW_HIDE), and then made it visible by ShowWindow (.., SW_SHOW) and
as a result, the caret is missing. The window has a focus because I can write in it, I can make selections and so on.
The only thing that bothers me, is that the caret is missing.
I had tried ShowCaret (), SetFocus (), it doesn't work.
Can you help ?
|
|
|
|
|
I made a test and it works ok. Could you give some more details?
rechi
|
|
|
|
|
I use straight WinAPI, but anyway thanks for interest, I have figured it out just a moment ago.
The solution is:
1. take the focus from an edit box, make it hidden
2. give the focus to the edit box again and make it visible
And the caret is here. Obviously, the caret is created and destroyed when the window gets and loses the keyboard focus.
|
|
|
|
|
Are you using BeginPaint anywhere in your program, DId you make sure to call EndPaint.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|