|
yes, and then send $3500 to Unisys for a license to use GIF in your application.
-c
Cheap oil. It's worth it!
|
|
|
|
|
It is my understanding that non-profit non-commercial apps can freely use GIF technology, which may suit the guy's needs. I'm sure you already know this, but here's a link stating the fact: Unisys Clarifies Policy Regarding Patent Use in On-Line Service Offerings. The key paragraph reads:
Unisys does not require licensing, or fees to be paid, for non-commercial, non-profit GIF-based applications, including those for use on the on-line services.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
from the Unisys LZW website:
In all cases, a written license agreement or statement signed by an authorized Unisys representative is required from Unisys for all use, sale or distribution of any software (including so-called "freeware") and/or hardware providing LZW conversion capability (for example, downloaded software used for creating/displaying GIF images). In certain cases, no license fees may be required, but this needs to be evidenced by a written agreement or written statement signed by an authorized Unisys representative.
-c
Cheap oil. It's worth it!
|
|
|
|
|
So it seems there's no escape at all. Chris, beware of your fancy smileys! They could lead you to jail.
Now seriously, why these guys from Unisys insist on this annoying issue? I'm sure the money they've been able to get from it these years is not worth the bad image they have gained.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
no, there is no escape: pay the fee or use PNG.
but if i'm not mistaken, the patent expires next june/july.
-c
Cheap oil. It's worth it!
|
|
|
|
|
I bought your IS image library a few years ago when it still had GIF support in it. Then I noticed when you removed GIF support, or at least started plastering notices about the license requirements for Unisys.
I was just wondering, did you get in trouble from them, or did you just decide to play it safe and remove GIF support?
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!
|
|
|
|
|
a couple of years ago i noticed that some other toolkit developers (like the guys who make "gd") were starting to get into legal trouble, and some others (like the guys who do JpegLib and LibTiff) were getting out of GIF just in case. so i got out, too. i had the "non-LZW" form of GIF in there for a while, but i pulled it after i learned that Unisys wasn't agreeable to that, either.
-c
Cheap oil. It's worth it!
|
|
|
|
|
Are you upset at Unisys? Because it seems that everytime that someone posts a question about GIFs your answers are a little harsh towards Unisys. I could care less either way about Unisys, but that is why I wondered if you had gotten into legal trouble with them.
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!
|
|
|
|
|
yeah, i'm a little upset at them but not for anything they did to me personally (yet)
-c
Cheap oil. It's worth it!
|
|
|
|
|
Why don't you search on the internet for a free software that will allow you to create AVI animations. That way you could create an animation from all of you bitmap images.
Then it is as easy as placing the animate control in the resource editor on a dialog and displaying the avi.
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!
|
|
|
|
|
can i specify baud rate 244 to operate the serial port with control Mscomm.ocx?
thx.
|
|
|
|
|
No, only 110, 300, 600, 1200, etc.
|
|
|
|
|
You said to use an IShellFolder pointer, but how do i get the IShellFolder interface for the folder that pNewId is pointing to in the
pFolder->Next(1, &pNewId, &pActual) loop?
void AddFilesFromFolder(ITEMIDLIST *pIdl)
{
if (pIdl)
{
IShellFolder *pBrowse = NULL;
LPENUMIDLIST pFolder = NULL;
LPMALLOC pMalloc = NULL;
ITEMIDLIST *pNewId = NULL;
STRRET strDispName;
LVITEM lvItem;
RECT rMain;
RECT rAdd;
char szCurrentFile[MAX_PATH+1+5];
char szFolderPath[MAX_PATH+1];
DWORD pActual = 0;
DWORD dwAttrib;
IShellFolder *CurrentFolder;
HRESULT err;
err = SHGetDesktopFolder (&CurrentFolder);
if (err == NOERROR)
{
SHGetMalloc(&pMalloc);
CurrentFolder->BindToObject(pIdl, NULL, IID_IShellFolder, (LPVOID*)&pBrowse);
pBrowse->GetDisplayNameOf(pIdl, SHGDN_INFOLDER, &strDispName);
err = pBrowse->EnumObjects(NULL, SHCONTF_FOLDERS | SHCONTF_NONFOLDERS | SHCONTF_INCLUDEHIDDEN, &pFolder);
if (err == NOERROR)
{
SHGetPathFromIDList(pIdl, szFolderPath);
lvItem.mask = LVIF_IMAGE | LVIF_TEXT;
while (pFolder->Next(1, &pNewId, &pActual) != S_FALSE)
{
dwAttrib = SFGAO_FOLDER;
pBrowse->GetAttributesOf(1, (LPCITEMIDLIST*)&pNewId, &dwAttrib);
if (!(dwAttrib & SFGAO_FOLDER))
{
pBrowse->GetDisplayNameOf(pNewId, SHGDN_INFOLDER, &strDispName);
PathCombine(gszPath, szFolderPath, strDispName.cStr);
GetID3();
FillInfo();
ListAddItem();
}
if (dwAttrib & SFGAO_FOLDER)
{
pBrowse->GetDisplayNameOf(pNewId, SHGDN_INFOLDER, &strDispName);
AddFilesFromFolder(pNewId);
}
}
pMalloc->Free(pNewId);
pMalloc->Release();
gbFileOpen = true;
pFolder->Release();
}
CurrentFolder->Release();
}
}
}
Thankyou
|
|
|
|
|
OK, I'm tearing my hair out over this one...
I've got a project with 2 .cpp files, both of which #include a .h file. All is well in the world. I add a second .h file (4dlist.h), for a template class. All is still well in the world. I then add a new .cpp file, with the single line #include "4DList.h", and now I start getting wierd compile errors.
So to recap, I have the following files:
CenFilter.cpp
CenWriter.cpp
foo.cpp
CenFilter.h
4DList.h
when foo is empty, everything works. when #includes 4DList.h I get errors.
here is the start of 4dlist.h:
template <class TYPE> class C4DList
{
public:
C4DList( UINT MaxSize = 1000 );
virtual ~C4DList();
C4DList( const C4DList &Copy );
void operator=( const C4DList &op2 );
UINT GetSize(){return m_ListSize;}
void AddTail( TYPE *pData );
TYPE *GetAt( UINT index );
void RemoveAt( UINT index );
void RemoveCurrentIt();
void RemoveAll();
void DeleteAllData();
void ItStart();
TYPE *ItNext();
...
...
...
So CenFilter.h has #include 4dlist.h and is fine.
but if foo.cpp has the single line it throws up:
Compiling...
foo.cpp
C:\Pete\Capture\CenFilter\CenReadFilter\4dlist.h(12) : error C2629: unexpected 'class C4DList<type> ('
C:\Pete\Capture\CenFilter\CenReadFilter\4dlist.h(51) : see reference to class template instantiation 'C4DList<type>' being compiled
C:\Pete\Capture\CenFilter\CenReadFilter\4dlist.h(12) : error C2238: unexpected token(s) preceding ';'
C:\Pete\Capture\CenFilter\CenReadFilter\4dlist.h(51) : see reference to class template instantiation 'C4DList<type>' being compiled
C:\Pete\Capture\CenFilter\CenReadFilter\4dlist.h(17) : error C2146: syntax error : missing ';' before identifier 'GetSize'
...
...
Now I REALLY don't get this. Oh, BTW, this isn't a standard appwizard project, it's adapted from an MSDN sample project.
I hope someone can help!
Pete
|
|
|
|
|
oops, I forgot about the <> thing
the first line of that code snippet should've been
template < class TYPE > class C4DList
sorry!
|
|
|
|
|
Not sure if this is your problem, but you have to include <windows.h> for UINT and other such types to be defined.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
I don't think that's it, coz my other .cpp and .h files have UINT's in them
Thanks anyway
|
|
|
|
|
Give it a try, it's safer than guessing.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
OK, I think that was the best advice I've had in a few months
Next time I won't make any dumb assumptions. Or rather, I'll try not too.
I guess that the other .cpp files were including something else which eventually included windows.h
Thanks a lot Joaquin, I was starting to lose hope back there
Pete
|
|
|
|
|
I'd say 90% of debugging nightmares stem from false assumptions like "it can't be that because I know it works" and things like that. Happy programming
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
I want when I run my program ,I get the handle of window opened behind it,I use this code but it does not work,Can anybody tell me whats the problem with this:
hwnd = ::GetForegroundWindow();
hwnd = ::GetNextWindow( hwnd , GW_HWNDNEXT );
::SetForegroundWindow(hwnd);
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
|
|
|
|
|
Hi everyone,
I know this will not be a tough one for you guys... I'm doing a Win32 Application I was trying to extract a string on a string but String.H is limitted I need more advance parsing like MID Function, I cant use CString.H since my project is notMFC, is there another way around that I can extract a string from a string by specifying the offsets and the length? I tried to use this code:
lpAlpha1 = DynamicData; //Just showing to you that I search a dynamic string....
StartPos = 0;
EndPos = 0;
strLen = strlen(lpAlpha1);
while (StartPos < strLen){
EndPos = strcspn(lpAlpha1," "); //Problem
for(i=StartPos,j=0;i<=EndPos;i++,i,j++){
searchStr[j] = lpAlpha1[i];
}
searchStr[j]='\0';
....Search the searchstring in the database..
StartPos = EndPos;
}
cout << searchStr;
But this code post a problem on the strcspn function since I can's specify which offset should it start looking for the space to get the next word on the string.
I hope you understand my explanation, Please help me on this one.
Thanks/Regards
Sidney
Thanks/Regards
Sidney
|
|
|
|
|
If you decide to switch to std::string s (which I highly recommend), then substr works like a charm for extracting substrings much like MID$ in BASIC does.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Hi Joaquin,
ummm... I can't quite understand the use of this, do you have a very sample code that can shoe on how to use this? Please if you have kindy send me a copy, I do not know how to use this.
Thanks/Regards
Sidney
|
|
|
|
|
Sure:
std::string str1="Hello miserable world";
std::str2=str1.substr(6,9);
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|