|
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!
|
|
|
|
|
I use:
m_dw=_beginthread(ThP, 0, NULL); // successfuly
// ...
PostThreadMessage(m_dw, WM_APP+10, 0, 0); // unhappy
in a dialog-based MFC application.
The thread function is:
void ThP(PVOID pv)
{
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
AfxMessageBox("676767");
}
}
This doesn't work. Have any idea why?
rechi
|
|
|
|
|
_beginthread returns the thread handle, whereas PostThreadMessage requires the thread ID. Use CreateThread instead to create the thread, as it provides both.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Hello,
I would like to program a kind of dialog screen containing a sort of header (with input area, text fields, buttons, radio buttons, ...) and, under this header, a zone where other dialogs can be displayed (one by one), these dialogs being selected with a tab bar .
To give an example of what I would like to do ... have a look at the dialog "System properties" or "Display Properties" of Windows.
Instead of having buttons on bottom of screen, I would have a header with various controls above this tab bar.
How can I do this kind of stuff in VC++ ?
Thanks in advance
DD
|
|
|
|
|
Hi ! I´d like to change the mouse cursor of my app (MFC-Dialog). I looked in the Code Project FAQ, where it is written Put a SetCursor when handling the WM_SETCURSOR message.
So I tried this :
<br />
BOOL CTestDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) <br />
{<br />
HCURSOR Hcur=(HCURSOR)LoadCursor(AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_CURSOR1));<br />
SetCursor(Hcur); <br />
return CDialog::OnSetCursor(pWnd, nHitTest, message);<br />
}<br />
but this does not work ... what´s wrong ? BTW, is it the best way to do it ?
Thanks
RaGe
Unfortunately, brute-force solutions tend to be slow
even when performed by modern-day microcomputers,
which are capable of several MIPS except when I'm late
for an appointment and want to finish a compile and
run just one more test before I leave, in which case
the crystal in my computer is apparently designed to
automatically revert to 1 Hz.
-- Michael Abrash
|
|
|
|
|
Read http://www.codeproject.com/useritems/dlgboxtricks.asp
Nish
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
Nish - Native CPian wrote:
Read http://www.codeproject.com/useritems/dlgboxtricks.asp
In this example, the given code is only for preshaped windows cursor. But the trick is the same : just comment out the return CDialog::OnSetCursor... (that is, the call to the base class) and it works.
Thank you very much Nish (as always..)
RaGe
Unfortunately, brute-force solutions tend to be slow
even when performed by modern-day microcomputers,
which are capable of several MIPS except when I'm late
for an appointment and want to finish a compile and
run just one more test before I leave, in which case
the crystal in my computer is apparently designed to
automatically revert to 1 Hz.
-- Michael Abrash
|
|
|
|