|
I need to write some code that will encrypt an Office document (Word, Excel, Power Point, etc). There are a few caveats to this:
1) It needs to work even if Office is not installed on the current PC
2) It needs to work in basically any version of Office (probably back to 97 would be nice), preferably the current version installed on the PC if there is one
3) It needs to be as secure as possible given the version restrictions encountered above. (IE it should not be XOR if the user has Office 2003 installed)
4) It needs to work for all different types of Office files.
It really feels like there should be API code to do this, but so far I have not found it. I figured out how to do this in some of the apps, for example the Word code you create an instance of MSWord, make it not visible, and then use SetPasswordEncryptionOptions and Password in your _DocumentPtr object.
So my question is 2-fold:
1) Do I need to create code like this for each and every Office file type, or is there an easier/cleaner way?
2) How do I handle the version issue? If I write it for Office 97 will it work with all later versions? (This probably means I can't get great encryption...)
Any suggestions, starting points, or ideas would be appreciated! I've been all over Microsoft's sites and not too much luck!
Thanks,
Stretchcoder
|
|
|
|
|
stretchcoder wrote: I need to write some code that will encrypt an Office document (Word, Excel, Power Point, etc). There are a few caveats to this:
1) It needs to work even if Office is not installed on the current PC
Are you just wanting to encrypt a file as it resides on disk?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I want to use the OFFICE standard encryption, so that when a user tries later to open a Word doc he has to interact with Word to type in a password and access it. Basically I want it to look like the encryption was added via whatever Office App the file was created in.
For older versions I don't think there is "encryption", I would simply be password protecting the doc (or whatever)
Thanks,
Stretchcoder
|
|
|
|
|
Does this encrypted file need to automatically be encrypted or decrypted when you open the file in Word ( or other Office app. )?
does Word support encryption ?
|
|
|
|
|
So as far as "automatically" encrypting or decrypting, I want the user to have to use the Office app to type in a password to access the file, just as if I had clicked on Tools/Options/Security etc to set a password in the first place.
Thanks,
Stretchcoder
And yes, Office does support several flavors of encryption in 2003 (not sure about older versions) Click on Tools/Options/Security Tab Advanced to see a list of choices
|
|
|
|
|
hello,
what i am doing wrong? i can't destroy created window
LRESULT HookWnd::OnMsg(WPARAM wParam, LPARAM lParam)
{
i++;
theApp.FileWrite("Window Destroyed");
if(i>10) DestroyWindow();
return 0;
}
HookWnd::HookWnd()
{
CWnd::CreateEx(0, AfxRegisterWndClass(0), "invisible", 0, -1, -1, 0, 0, 0, 0);
}
how else can i destroy my window ?
-- modified at 15:08 Thursday 2nd November, 2006
|
|
|
|
|
What line of what file is asserting?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
|
edvintas wrote: i don't know.. but here is an error window: http://img73.imageshack.us/img73/7837/errorqt2.jpg[^]
Did you miss "line 979 of wincore.cpp?"
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
i think no
hmm i don't want to create one more topic so i will ask here, how to terminate MFC application in a proper way?
i always get error message when i call ExitInstance "Application was terminated in unusual way.. blah blah blah"
int CpKloggerApp::ExitInstance()
{
Delete();
FileWrite("pKlogger terminated");
return CWinApp::ExitInstance();
}
hmm its a bit annoying why i can't just delete delete delete...
anyway.. thank you for help in advance
|
|
|
|
|
Does it still happen if you remove the calls to Delete() and FileWrite() ? Have you stepped into CWinApp::ExitInstance() to note where that debug message is being printed from?
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
if i remove delete() call there is no error but without delete CWinApp object isn't destroyed and application doesn't turns off and i can see it in task manager process list
|
|
|
|
|
|
edvintas wrote: ...without delete CWinApp object isn't destroyed...
The CWinApp -derived object does not get destroyed until it goes out of scope, which is one of the very last things to happen since it is a global variable. You need to debug into the Delete() call to see why it is misbehaving.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
when i debug my application it stops here:
***dbgheap.c***<br />
<pre>...
HERE>>> _ASSERTE(_CrtIsValidHeapPointer(pUserData));
...</pre><br />
<br />
but it says nothing for me :-O<br />
any ideas? :^)
|
|
|
|
|
edvintas wrote: but it says nothing for me
Me either, since you've not shown any supporting code.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
ok, short summary of my application: CWinApp creates thread and invisible window.
After 5sec. thread terminates and it should terminate the application but it don't.
BOOL CpKloggerApp::InitInstance()<br />
{<br />
hookThr = new pKhookT();<br />
hWnd = new HookWnd();<br />
m_pMainWnd = hWnd;<br />
return true;<br />
}<br />
pKhookT::~pKhookT()<br />
{<br />
theApp.m_pMainWnd->DestroyWindow();<br />
theApp.Delete();<br />
} thats all
i think i would better use win32api
in MFC to many mysterious sh*t happens however i almost like it
|
|
|
|
|
A secondary thread should not be allowed to terminate the application. It should simply post a message back to the primary thread indicating that the application should shut down.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
Hi , i want to create an application in which :
When someone write a word (key variable) the application will bring
others information
For example :
ID | Name | Last name | Birth date |
241 | John | Papadopoulos| 19/01/1980 |
541 | James | Smiths | 01/05/1970 |
so i will have 4 member variables (i think) and
ID , Name , Lname , Birthdate
When someone gives ID 241 then the other 3 variables
(Name , Lname , Birthdate) will get the data next to 241
(thats Data structures ?:P)
Now my question . Anyone could suggest me a link where
it will have information/guide on how i will make this ?
guide on how i will do this
|
|
|
|
|
a simple list ( or vector ) can be used to hold your structures; for small number of entries it will not be an issue.
// simplified solution
class Entry
{
int ID;
std::string name;
std::string last_name;
std::string birth_data; /// as a string.
}
std::vector<entry> EntryVector;
when user enters an ID, just loop the vector to find the matching ID, samething for other fields.
|
|
|
|
|
hm yes :S i didnt said the important think
I want , User be able to create the list (insert data)
But how i will save the values of the 4 member variables ?
(so i will be able afterwards search them )
PS : just loop the vector to find the matching ID how i do that ?
|
|
|
|
|
IMO, it looks like a database application for me. I think this should be the way to go. But now, you have to first know which 'technology' you want to use (which kind of database). And for that part, I'm not very experienced...
|
|
|
|
|
well i thought that too but data base = mysql ?
but i dont thing so that the video clubs that got a application
with all the renters , uses mysql
(on C++ i tried to crate Data base project and it ask my for dns login name pass etc :S)
I thought to work with edit text fuctions
(so in each line the first 10 letters/spaces will be for the ID
next 20 for Name next 20 for Lname next 10 for BirthDate)
(so with a buffer gonna read first 10 letters in each line
and when the ID is the same value with the value the User
have given it will collect the other 3 information
Just my University teacher told me it would be easy doing
it with Data structures
|
|
|
|
|
It is very difficult to understand you, can you please make a little effort on your spelling ?
Immunity18 wrote: data base = mysql ?
As far as I know, SQL is only a language to access your database in an uniform way. For mySQL, I don't know what it is exactly but it is certainly not the only database type that exists.
Immunity18 wrote: but i dont thing so that the video clubs that got a application
with all the renters , uses mysql
I don't understand what you are trying to say. Anyway, I'm almost sure that video clubs systems use a database to store their customer data. For me, that seems the most adequate thing to do.
Immunity18 wrote: (on C++ i tried to crate Data base project and it ask my for dns login name pass etc :S)
I'm not experienced with databases but there are several ways to do it (I thin you tried through the wizard, whihc I don't really like). If you make a search on this website, you'll find a lot of usefull classes to help you.
Immunity18 wrote: I thought to work with edit text fuctions
(so in each line the first 10 letters/spaces will be for the ID
next 20 for Name next 20 for Lname next 10 for BirthDate)
(so with a buffer gonna read first 10 letters in each line
and when the ID is the same value with the value the User
have given it will collect the other 3 information
Yes, I know what you want to do but it will be much more efficient to do it using database (I you don't need to to write all the stuff to read the files, parsing and searching... everything is handled by the database classes). Of course, you need to spend a little bit of time to understand how it works.
Immunity18 wrote: Just my University teacher told me it would be easy doing
it with Data structures
You can use a database and still use data structures to manage your data.
|
|
|
|
|
Cedric Moonen wrote: I'm not experienced with databases but there are several ways to do it (I thin you tried through the wizard, whihc I don't really like). If you make a search on this website, you'll find a lot of usefull classes to help you.
thx i will try that ( i had search info about Data structures and didnt finding something useful ) i will search about Data Bases
Cedric Moonen wrote: Yes, I know what you want to do but it will be much more efficient to do it using database (I you don't need to to write all the stuff to read the files, parsing and searching... everything is handled by the database classes). Of course, you need to spend a little bit of time to understand how it works.
I think you have understand me and yes i dont like to make the application as i said (I know how to edit text etc , but i dont
know how to use databases / data structures , so i want to try
make this project with databases and get some skill on this type
of projects.
|
|
|
|