Click here to Skip to main content
12,554,953 members (56,073 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


17 bookmarked

CIMDBSearch Class

, 6 Jun 2008 CPOL
Rate this:
Please Sign up or sign in to vote.
An article on a simple C++ IMDB search class


This article is about a simple C++ class that can be used to search for movie information from the IMDB Web site. The IMDB Web site is organized as the free online service that offers detailed information about movies, series, actors etc. Please see more about it using this link. IMDB - Internet Movie Database is also a database system, so many applications are using this way of providing information to extract the details about movies, series, actors, filming locations, etc.


The basic idea was to write a C++ class with a very simple interface to IMDB. I have found one or two .NET classes on SourceForge, but no implementation in C++. So, I have decided to give a small contribution to the world-wide C++ community. Also, for anyone that is developing a software for movie catalogisation, this class could be interesting.

Using the Code

To use the CIMDBSearch class, add IMDBSearch.h and IMDBSearch.cpp files to your project. Using few simple static methods of this class, you can extract information about the movie you are looking for on IMDB, see below:

#include <span class="code-string">"IMDBSearch.h"</span>

// Search IMDB database
if (CIMDBSearch::SearchIMDB(_T("Enter a searching keyword here..."), ST_TITLES_EXACT))
    // Get number of search results
    int iNumberResults = CIMDBSearch::GetSearchCount();
    for (int i=0; i<iNumberResults; i++)
        // Get search item
        LPSEARCH_INFO lpSearchItem = CIMDBSearch::GetSearchItem(i);

The previous code snippet will get you a list of the exact title matching inside the IMDB database. To get all possible titles, use the flag ST_TITLES_PARTIAL instead of the ST_TITLES_EXACT flag. The IMDB Web site returns different lists of titles during its search. One is Titles (Exact Matching), and the other one is Titles (Partial Matching). This flags support data extraction from these lists.

The definition of the SEARCH_INFO structure is the following:

typedef struct _SEARCH_INFO
    _TCHAR szPath[256];        // IMDB Web page with the movie details
    _TCHAR szTitle[256];       // The title of the movie
    _TCHAR szYear[256];        // Year the movie was filmed


To get the movie details, see the following:

// Get movie details
int item = 0;
if ((lpMovieInfo=CIMDBSearch::GetMovieInfo(item)))

The definition of the MOVIE_INFO structure is the following:

typedef struct _MOVIE_INFO
    _TCHAR szUserRating[256];        // The movie user rating
    _TCHAR szDirector[256];          // The director
    _TCHAR szWriter[256];            // The writer
    _TCHAR szReleaseDate[256];       // First release date
    _TCHAR szGenre[256];             // The movie genre
    _TCHAR szPlot[1024];             // A short description
    _TCHAR szAwards[256];            // The awards
    _TCHAR szUserComments[1024];     // User comments
    _TCHAR szRuntime[256];           // The length of the movie
    _TCHAR szCountry[256];           // The movie production country
    _TCHAR szLanguage[256];          // The movie language
    _TCHAR szColor[256];             // Color system
    _TCHAR szAspectRatio[256];       // Picture aspect ratio
    _TCHAR szSoundMix[256];          // The sound quality
    _TCHAR szFilmingLocations[256];   // Filming locations
    _TCHAR szCompany[256];           // The movie production company
    _TCHAR szPoster[256];            // The link to the movie poster 
                                     // (.JPEG image generally)
    _TCHAR szCast[15][256];          // The movie cast


The last thing to do is to clear the memory by calling the CIMDBSearch::Clear() method before you exit your application.

Points of Interest

I was very interested in extracting the information from the IMDB Web site, since many popular movie catalogisation software use this free Web service to collect the details considering different movies when building home-made digital movie collections.


  • 6th June, 2008: Initial post


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Software Developer (Senior) Elektromehanika d.o.o. Nis
Serbia Serbia
He has a master degree in Computer Science at Faculty of Electronics in Nis (Serbia), and works as a C++/C# application developer for Windows platforms since 2001. He likes traveling, reading and meeting new people and cultures.

You may also be interested in...

Comments and Discussions Version Pin
C. Beyazit24-Apr-10 5:54
memberC. Beyazit24-Apr-10 5:54 
GeneralCIMDBSearch is no longer running Pin
Superball Dadada2-May-09 2:03
memberSuperball Dadada2-May-09 2:03 
GeneralCompile Errors Pin
Ryan Kraus19-Oct-08 2:06
memberRyan Kraus19-Oct-08 2:06 
GeneralRe: Compile Errors Pin
darkoman19-Oct-08 3:14
memberdarkoman19-Oct-08 3:14 
GeneralImage Pin
DavidCrow10-Jun-08 2:48
mvpDavidCrow10-Jun-08 2:48 
GeneralRe: Image Pin
darkoman10-Jun-08 20:41
memberdarkoman10-Jun-08 20:41 
GeneralRe: Image Pin
DavidCrow11-Jun-08 3:08
mvpDavidCrow11-Jun-08 3:08 
GeneralRe: Image Pin
darkoman11-Jun-08 20:13
memberdarkoman11-Jun-08 20:13 
QuestionRe: Image Pin
DavidCrow12-Jun-08 2:27
mvpDavidCrow12-Jun-08 2:27 
AnswerRe: Image Pin
darkoman12-Jun-08 7:59
memberdarkoman12-Jun-08 7:59 
GeneralRe: Image Pin
DavidCrow12-Jun-08 8:08
mvpDavidCrow12-Jun-08 8:08 
GeneralFreeImage Library Pin
Michael A. Rusakov9-Jun-08 23:12
memberMichael A. Rusakov9-Jun-08 23:12 
GeneralRe: FreeImage Library Pin
darkoman10-Jun-08 0:58
memberdarkoman10-Jun-08 0:58 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.161021.1 | Last Updated 6 Jun 2008
Article Copyright 2008 by darkoman
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid